Pagini recente » Cod sursa (job #821223) | Cod sursa (job #2513203) | Cod sursa (job #1917422) | Cod sursa (job #323650) | Cod sursa (job #3314153)
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N, K, A, B;
if (!(cin >> N >> K >> A >> B)) return 0;
vector<int> v(N+1);
for (int i = 1; i <= N; ++i) cin >> v[i];
// prefix modulo K
vector<int> P(N+1);
long long sum = 0;
P[0] = 0;
for (int i = 1; i <= N; ++i) {
sum += v[i];
int m = (int)(sum % K);
if (m < 0) m += K;
P[i] = m;
}
vector<int> freq(K);
long long ans = 0;
for (int r = 1; r <= N; ++r) {
int idx_add = r - A;
if (idx_add >= 0) {
++freq[P[idx_add]];
}
int idx_rem = r - B - 1;
if (idx_rem >= 0) {
--freq[P[idx_rem]];
}
ans += freq[P[r]];
}
cout << ans << '\n';
return 0;
}