Pagini recente » Cod sursa (job #1299232) | Cod sursa (job #1191296) | Cod sursa (job #2781746) | Rating Grecu Cezar Gabriel (ceezar) | Cod sursa (job #3137328)
//Ilie Dumitru
#include<cstdio>
const int NMAX=500005;
int v[NMAX];
int cnt[NMAX];
int main()
{
FILE* f=fopen("divk.in", "r"), *g=fopen("divk.out", "w");
//FILE* f=stdin, *g=stdout;
int i, N, a, b, k, sum=0;
long long int ans=0;
fscanf(f, "%d%d%d%d", &N, &k, &a, &b);
for(i=0;i<N;++i)
{
fscanf(f, "%d", v+i);
sum=v[i]=(v[i]+sum)%k;
ans+=cnt[v[i]];
if(i>=a-1)
++cnt[v[i-a+1]];
if(i>=b)
--cnt[v[i-b]];
}
fprintf(g, "%lld\n", ans);
fclose(f);
fclose(g);
return 0;
}