Pagini recente » Cod sursa (job #910081) | Cod sursa (job #1878362) | Cod sursa (job #624515) | Cod sursa (job #419427) | Cod sursa (job #1700375)
#include <fstream>
#define LL long long
using namespace std;
ifstream cin("divk.in");
ofstream cout("divk.out");
const int MaxN = 500005, MaxK = 100005;
LL ModFreq[MaxK], Psum[MaxN];
LL Ans;
int n, k, A, B, CurrSum, RgSum, LfSum;
int main() {
cin >> n >> k >> A >> B;
for (int i = 1; i < A; ++i) {
int x;
cin >> x;
Psum[i] = Psum[i - 1] + x;
Psum[i] %= k;
}
for (int i = A; i < B; ++i) {
int x;
cin >> x;
Psum[i] = Psum[i - 1] + x;
Psum[i] %= k;
++ModFreq[Psum[i - A]];
Ans += ModFreq[Psum[i]];
}
for (int i = B; i <= n; ++i) {
int x;
cin >> x;
Psum[i] = Psum[i - 1] + x;
Psum[i] %= k;
++ModFreq[Psum[i - A]];
Ans += ModFreq[Psum[i]];
--ModFreq[Psum[i - B]];
}
cout << Ans << '\n';
return 0;
}