Pagini recente » Cod sursa (job #2455585) | Cod sursa (job #3142002) | Profil Djok | Cod sursa (job #1662049) | Cod sursa (job #26089)
Cod sursa(job #26089)
#include<stdio.h>
int sum[500005],u[100005];
int main()
{
FILE *fin=fopen("divk.in","r"),*fout=fopen("divk.out","w");
int n,k,a,b,i,s;
long long sol=0;
fscanf(fin,"%d%d%d%d",&n,&k,&a,&b);
sum[0]=0;
for(i=1;i<=n;i++)
{
fscanf(fin,"%d",&sum[i]);
sum[i]+=sum[i-1];
sum[i]%=k;
}
for(i=0;i<=k;i++) u[i]=0;
s=0;
for(i=1;i<=a-1;i++) s+=sum[i];
int li,lf,pi,pf;
for(li=1,lf=a,pi=lf-b,pf=li-1;lf<=n;li++,lf++,pi++,pf++)
{
if(pi-1>=0)
u[sum[pi-1]]--;
if(pf>=0)
u[sum[pf]]++;
sol+=u[sum[lf]];
}
fprintf(fout,"%lld\n",sol);
fclose(fin);
fclose(fout);
}