Cod sursa(job #1713177)
| Utilizator | Data | 4 iunie 2016 21:45:26 | |
|---|---|---|---|
| Problema | Divk | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <cstdio>
#define NMax 500005
long long sum[NMax];
long long v[NMax];
int main(){
freopen("divk.in","r",stdin);
freopen("divk.out","w",stdout);
int i,j,A,B,n,k,x;
long long ans=0;
scanf("%d %d %d %d",&n,&k,&A,&B);
for( i = 1; i <= n; ++i )
{
scanf("%d",&x);
sum[i] = ( sum[i-1] + x ) % k;
}
for( i = A; i <= n; ++i )
{
v[ sum[i-A] ]++;
ans += v[ sum[i] ];
if(i-B>=0)
v[ sum[i-B] ]--;
}
printf("%lld\n",ans);
return 0;
}
