Pagini recente » Cod sursa (job #2247283) | Borderou de evaluare (job #999051) | Cod sursa (job #325846) | Monitorul de evaluare | Cod sursa (job #935686)
Cod sursa(job #935686)
#include<stdio.h>
#define NMAX 500000
int n,k,a,b,sp[NMAX+10],f[NMAX+10];
int main()
{
freopen("divk.in","r",stdin);
freopen("divk.out","w",stdout);
int start,end,x,i;
long long res=0;
scanf("%d%d%d%d",&n,&k,&a,&b);
for(i=1;i<=n;i++)
{
scanf("%d",&x);
sp[i]=(x+sp[i-1])%k;
}
res=0;
for(i=1;i<=n;i++)
{
if(i-a>=0)
f[sp[i-a]]++;
if(i-b>0)
f[sp[i-b-1]]--;
res=res+(long long)f[sp[i]];
}
printf("%lld\n",res);
return 0;
}