Pagini recente » Cod sursa (job #1898800) | Cod sursa (job #1862489) | Cod sursa (job #2030392) | Cod sursa (job #2186274) | Cod sursa (job #2462693)
#include <bits/stdc++.h>
using namespace std;
const int N = 5 * 1e5;
long long nr[5 + N], sum[5 + N];
int main()
{
freopen("divk.in", "r", stdin);
freopen("divk.out", "w", stdout);
int n, k, a, b, i, x;
long long rez = 0;
scanf("%d%d%d%d", &n, &k, &a, &b);
for(i = 1; i <= n; i++){
scanf("%d", &x);
sum[i] = sum[i - 1] + x;
sum[i] %= k;
}
for(i = a; i <= b; i++){
nr[sum[i-a]]++;
rez += nr[sum[i]];
}
for(i = b + 1; i <= n; i++){
nr[sum[i-a]]++;
nr[sum[i-b-1]]--;
rez += nr[sum[i]];
}
printf("%lld\n", rez);
return 0;
}