Pagini recente » Monitorul de evaluare | Cod sursa (job #803621) | Borderou de evaluare (job #2880212) | Cod sursa (job #2324908) | Cod sursa (job #1713177)
#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;
}