Pagini recente » Cod sursa (job #1387417) | Cod sursa (job #1286601) | Cod sursa (job #625048) | Cod sursa (job #510281) | Cod sursa (job #2907675)
/// [A][M][C][B][N] ///
#include <bits/stdc++.h>
using namespace std;
const int mod = 9901, inf = 0x3f3f3f3f;
const char sp = ' ', nl = '\n';
ifstream fin("divk.in");
ofstream fout("divk.out");
int main() {
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
int n, k, a, b;
fin >> n >> k >> a >> b;
vector<int> v(n + 1);
for (int i = 1; i <= n; ++i) {
fin >> v[i];
v[i] = (v[i] + v[i - 1]) % k;
}
vector<int> cnt(k);
int st = 0, dr = -1;
long long ans = 0;
for (int i = 1; i <= n; ++i) {
int new_st = max(i - b, -1), new_dr = max(i - a, -1);
while (st < new_st) {
cnt[v[st++]]--;
}
while (dr < new_dr) {
cnt[v[++dr]]++;
}
ans += cnt[v[i]];
}
fout << ans;
}