Pagini recente » Cod sursa (job #44855) | Cod sursa (job #25387) | Cod sursa (job #2488695) | Cod sursa (job #3193218) | Cod sursa (job #972530)
Cod sursa(job #972530)
#include <cstdio>
using namespace std;
#define NMAX 500001
int i, N, K, A, B;
int x;
int Sum[NMAX];
long long Freq[NMAX];
long long ANS;
int main() {
freopen("divk.in","r",stdin);
freopen("divk.out","w",stdout);
scanf("%i%i%i%i", &N, &K, &A, &B);
for (i = 1; i <= N; ++i) {
scanf("%i", &x);
Sum[i] = (Sum[i - 1] + x) % K;
if (i >= A)
++Freq[Sum[i - A]];
if (i > B)
--Freq[Sum[i - B - 1]];
ANS += Freq[Sum[i]];
}
printf("%lld\n", ANS);
return 0;
}