Cod sursa(job #606003)
Utilizator | Data | 3 august 2011 10:27:29 | |
---|---|---|---|
Problema | Divk | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.37 kb |
#include <fstream.h>
long x,a,b,n,k,i,v[500002],uz[100002];
long long s;
main(){
freopen("divk.in", "r", stdin);
freopen("divk.out", "w", stdout);
scanf("%ld%ld%ld%ld", &n, &k, &a, &b);
for(i=1;i<=n;i++){
scanf("%ld", &x);
v[i]=(v[i-1]+x)%k;}
for(i=a;i<=n;i++){
uz[v[i-a]]++;
if(i>b)
uz[v[i-b-1]]--;
s+=uz[v[i]];}
printf("%lld", s);
}