Pagini recente » Cod sursa (job #1628121) | Cod sursa (job #244055) | Cod sursa (job #1950437) | Cod sursa (job #543322) | Cod sursa (job #249446)
Cod sursa(job #249446)
#include <stdio.h>
#define NMAX 500001
#define KMAX 100000
int N,K,A,B;
long long sum[NMAX];
int nr[KMAX];
long long num;
int main()
{
FILE *fin=fopen("divk.in","rt");
FILE *fout=fopen("divk.out","wt");
fscanf(fin,"%d%d%d%d",&N,&K,&A,&B);
int i,aux;
for (i=1;i<=N;++i)
{
fscanf(fin,"%d",&aux);
sum[i]=sum[i-1]+aux;
if (i-A>=0) ++nr[sum[i-A]%K];
num+=nr[sum[i]%K];
if (i-B>=0) --nr[sum[i-B]%K];
}
fprintf(fout,"%lld\n",num);
fclose(fin);
fclose(fout);
return 0;
}