Cod sursa(job #1027638)
| Utilizator | Data | 12 noiembrie 2013 21:39:09 | |
|---|---|---|---|
| Problema | Divk | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.45 kb |
#include <iostream>
#include <fstream>
#define nmax 500001
using namespace std;
ifstream in("divk.in");
ofstream out("divk.out");
int n,k,a,b,i,x,j,num=0;
long s[nmax],f[nmax];
int main(){
in >> n >> k >> a >> b;
for (i=1; i<=n; i++)
in >> s[i], s[i]=(s[i-1]+s[i])%k;
for (i=a; i<=n; i++){
f[s[i-a]]++;
if (i>b) f[s[i-b-1]]--;
num+=f[s[i]];
}
out << num << "\n";
return 0;
}