Pagini recente » Cod sursa (job #3318803) | Cod sursa (job #3330918) | Cod sursa (job #3303891) | Cod sursa (job #3145874) | Cod sursa (job #3314334)
#include <bits/stdc++.h>
using namespace std;
int main() {
ifstream fin("divk.in");
ofstream fout("divk.out");
long long N;
int K, A, B;
fin >> N >> K >> A >> B;
vector<long long> a(N + 1);
for (long long i = 1; i <= N; ++i) fin >> a[i];
vector<int> sp(N + 1);
long long sum = 0;
sp[0] = 0;
for (long long i = 1; i <= N; ++i) {
sum += a[i];
sp[i] = int(sum % K);
if (sp[i] < 0) sp[i] += K;
}
vector<long long> freq(K, 0);
long long ans = 0;
for (long long i = 1; i <= N; ++i) {
long long j_add = i - A;
if (j_add >= 0) freq[ sp[j_add] ]++;
long long j_rem = i - B - 1;
if (j_rem >= 0) freq[ sp[j_rem] ]--;
ans += freq[ sp[i] ];
}
fout << ans << "\n";
return 0;
}