Pagini recente » Clasament urmasiiluidoru | Cod sursa (job #1756922) | Cod sursa (job #701592) | tema | Cod sursa (job #615017)
Cod sursa(job #615017)
#include<stdio.h>
#define MaxN 500100
#define MaxK 100100
int N,K,x,y,A[MaxN],B[MaxK];
long long nr;
int main()
{
FILE *f = fopen("divk.in","r");
FILE *g = fopen("divk.out","w");
fscanf(f,"%d %d %d %d",&N,&K,&x,&y);
for(int i=1;i<=N;i++)
{
fscanf(f,"%d ",&A[i]);
A[i] = (A[i-1]+A[i])%K;
}
for(int i=1;i<=N;i++)
{
if(i >= x)
B[A[i-x]] ++;
if(i > y)
B[A[i-y-1]] --;
nr += B[A[i]];
}
fprintf(g,"%llu ",nr);
fclose(g);
fclose(f);
return 0;
}