Cod sursa(job #1848538)

Utilizator andrei_diaconu11Andrei C. Diaconu andrei_diaconu11 Data 16 ianuarie 2017 10:26:11
Problema Divk Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.43 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream fi("divk.in");
ofstream fo("divk.out");

int r[500001], f[100000];

int main()
{
  int n, k, a, b, x, i;
  fi>>n>>k>>a>>b;
  long long ans=0;
  for(i=1;i<=n;i++){
    fi>>x;
    r[i]=(r[i-1]+x)%k;
    if(a<=i && i<b){
      f[r[i-a]]++;
      ans+=f[r[i]];
    }
  }
  for(i=b;i<=n;i++){
    f[r[i-a]]++;
    ans+=f[r[i]];
    f[r[i-b]]--;
  }
  fo<<ans;
  return 0;
}