Pagini recente » Cod sursa (job #2515933) | Cod sursa (job #587363) | Cod sursa (job #414761) | Cod sursa (job #2902191) | Cod sursa (job #1846634)
#include <cstdio>
int resturi[500001];
int f[100001];
int main() {
freopen("divk.in", "r", stdin);
freopen("divk.out", "w", stdout);
int N, k, A, B, x;
scanf("%d %d %d %d", &N, &k, &A, &B);
for(int i = 1; i <= N; ++ i) {
scanf("%d", &x);
resturi[i] = (resturi[i - 1] + x) % k;
}
f[0] = 1;
for(int i = 1; i <= B - A; ++ i)
++ f[resturi[i]];
int ans = 0;
for(int i = B; i <= N; ++ i) {
ans += f[resturi[i]];
-- f[resturi[i - B]];
++ f[resturi[i - A + 1]];
}
printf("%d\n", ans);
return 0;
}