Pagini recente » Cod sursa (job #782572) | Cod sursa (job #1850350) | Cod sursa (job #1397852) | Cod sursa (job #879395) | Cod sursa (job #65681)
Cod sursa(job #65681)
#include <stdio.h>
#define KMAX 100001
#define NMAX 500009
int n, k, a, b, v[KMAX];
long long s[NMAX];
long long count;
int main()
{
int i;
freopen("divk.in", "r", stdin);
freopen("divk.out", "w", stdout);
scanf("%d %d %d %d", &n, &a, &b, &k);
for (i = 1; i <= n; ++i)
{
scanf("%d", s+i);
s[i] = (s[i-1] + s[i]) % k;
}
for (i = 1; i <= a-1; ++i)
++v[s[i]];
for (i = a; i <= n; ++i)
{
++v[s[i-a]];
count += v[s[i]];
if (i >= b) ++v[s[i-b]];
}
printf("%lld\n", count);
return 0;
}