Pagini recente » Cod sursa (job #2623396) | Cod sursa (job #2077198) | Cod sursa (job #1502563) | Cod sursa (job #2623980) | Cod sursa (job #2500528)
#pragma GCC optimize("O3")
#include <iostream>
#include <fstream>
#include <vector>
#define int long long
using namespace std;
ifstream in("divk.in");
ofstream out("divk.out");
int n, k, a, b, sum, ans;
vector<int> sp[100005];
int32_t main()
{
in >> n >> k >> a >> b;
sp[0].push_back(0);
for (int i = 1; i <= n; i++)
{
int x;
in >> x;
sum += x;
sum %= k;
sp[sum].push_back(i);
}
for (int i = 0; i < k; i++)
{
int la = 0, lb = 0;
for (int j = 0; j < sp[i].size(); j++)
{
while (sp[i][j] - sp[i][la] >= a)
la++;
while (sp[i][j] - sp[i][lb] > b)
lb++;
ans += la - lb;
}
}
out << ans;
}