Pagini recente » Cod sursa (job #2639920) | Borderou de evaluare (job #201405) | Cod sursa (job #3268400) | Cod sursa (job #2312810) | Cod sursa (job #2462701)
#include <cstdio>
#include <iostream>
using namespace std;
const int N = 5 * 1e5;
int nr[5 + N], sum[5 + N];
int main()
{
ios_base::sync_with_stdio(false);
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;
}