Pagini recente » Cod sursa (job #382250) | Cod sursa (job #2966933) | Cod sursa (job #3355709) | Cod sursa (job #2948159) | Cod sursa (job #3329459)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <cmath>
#include <stack>
#include <string>
using namespace std;
ifstream fin("i.in");
ofstream fout("i.out");
int n, x[500005];
int s[500005];
int fr[100005];
int k, a, b;
int ans, siz;
int main()
{
cin >> n;
cin >> k >> a >> b;
for (int i = 1; i <= n; ++i) {
cin >> x[i];
x[i] = x[i] % k;
s[i] = (s[i - 1] + x[i]) % k;
if (s[i] == 0 and i <= b) ++ans;
if (i <= a) fr[s[i]]++, ++siz;
}
for (int i = a * 2; i <= n; ++i) {
ans += fr[s[i]];
if (siz < b) {
fr[s[i - a + 1]]++;
++siz;
}
if (siz == b) {
fr[s[i - a + 1]]++;
fr[s[i - b - a + 1]]--;
}
}
cout << ans << " ";
}