Pagini recente » Cod sursa (job #884143) | Cod sursa (job #151304) | Cod sursa (job #2372468) | Cod sursa (job #1164463) | Cod sursa (job #1649838)
#include <stdio.h>
#include <stdlib.h>
#define MAXN 500000
#define MAXK 100000
int v[MAXN+1], frecv[MAXK];
int main()
{
FILE *fin, *fout;
int n, k, a, b, i, s;
long long nr;
fin=fopen("divk.in", "r");
fscanf(fin, "%d%d%d%d", &n, &k, &a, &b);
s=0;
for(i=1; i<=n; i++){
fscanf(fin, "%d", &v[i]);
s=(s+v[i])%k;
v[i]=s;
}
fclose(fin);
nr=0LL;
for(i=1; i<=n; i++){
if(i>=a)
frecv[v[i-a]]++;
nr+=1LL*frecv[v[i]];
if(i>=b)
frecv[v[i-b]]--;
}
fout=fopen("divk.out", "w");
fprintf(fout, "%lld\n", nr);
fclose(fout);
return 0;
}