Pagini recente » Cod sursa (job #832632) | Cod sursa (job #795632) | Cod sursa (job #2241485) | Cod sursa (job #954437) | Cod sursa (job #922205)
Cod sursa(job #922205)
#include<stdio.h>
int N,K,A,B;
int X,s[501010];
int nr[101010],x,Xi,Yi;
long long sol;
int main()
{
freopen("divk.in","r",stdin);
freopen("divk.out","w",stdout);
scanf("%d%d%d%d",&N,&K,&A,&B);
int lung = B-A+1;
for(int i=1;i<=N;++i)
{
scanf("%d",&x);
s[i]=s[i-1]+x;
s[i]%=K;
// printf("%d ",s[i]);
}
//printf("\n");
Xi=1;
Yi=lung;
int ind=1;
for(int i=1;i<=lung;++i)
{
++nr[s[i]];
}
for(int i=1;i<=N+1;++i)
{
if(ind<=Xi-A+1)
{
// printf("%d %d %d\n",ind,Xi,Yi);
// printf("%d %d\n",s[ind],nr[s[ind]]);
sol+=nr[s[ind]];
++ind;
}
if(Xi<=N)
--nr[s[Xi]];
++Xi;
++Yi;
if(Yi<=N)
++nr[s[Yi]];
}
printf("%lld",sol);
return 0;
}