Pagini recente » Diferente pentru problema/sir9 intre reviziile 7 si 11 | Diferente pentru problema/sir9 intre reviziile 4 si 11 | Diferente pentru problema/sir9 intre reviziile 3 si 11 | Diferente pentru problema/sir9 intre reviziile 2 si 11 | Cod sursa (job #1497617)
#include <stdio.h>
#include <iostream>
using namespace std;
int main (void) {
ios_base::sync_with_stdio(false);
freopen("divk.in", "r", stdin);
freopen("divk.out", "w", stdout);
int v[500005], r[500005], n, k, a, b, x;
long long sol;
cin >> n >> k >> a >> b;
r[0] = 1;
for (int i = 1; i <= n; ++i) {
cin >> x;
v[i] = (v[i - 1] + x) % k;
}
for (int i = a; i <= n; ++i) {
sol += r[v[i]];
++r[v[i - a + 1]];
if (i >= b) --r[v[i - b]];
}
printf("%lld", sol);
return 0;
}