Pagini recente » Cod sursa (job #1880365) | Cod sursa (job #2939085) | Cod sursa (job #2407808) | Cod sursa (job #2213913) | Cod sursa (job #73861)
Cod sursa(job #73861)
#include<stdio.h>
int ind , i, j, cit, d[500005], a, b, k, n, s;
long long nrs;
int main()
{
freopen("divk.in","r",stdin);
freopen("divk.out","w",stdout);
scanf("%d%d%d%d", &n, &k, &a, &b);
ind = 1;
for (i=1; i<=n; i++){
scanf("%d", &cit);
/*
if (ind < a)
s+=cit;
else
if (ind <= b){
s += cit;
if (s % k == 0)
nrs ++;
for (j=1; j<=d[0]; j++)
if ((s-d[j]) % k == 0)
nrs ++;
d[++d[0]] = s;
}
else{
s = 0;
d[0] = 0;
ind = 1;
}
ind ++;
*/
s += (cit % k);
if (i >= a){
if (i <= b)
if (s % k == 0)
nrs ++;
for (j=1; j<=d[0]; j++)
if (i-j >= a){
if (i-j <=b)
if ((s-d[j]) % k == 0)
nrs ++;
}
else
break;
}
d[++d[0]] = s % k;
}
printf("%lld\n", nrs);
fclose(stdin);
fclose(stdout);
return 0;
}