Pagini recente » Cod sursa (job #201221) | Cod sursa (job #1505005) | Cod sursa (job #1971085) | Cod sursa (job #2378914) | Cod sursa (job #1539950)
#include<cstdio>
using namespace std;
const int nMax = 500000;
int r[nMax + 1], nrAp[nMax + 1];
int main (){
FILE *in = fopen("divk.in","r");
FILE *out = fopen("divk.out","w");
int n, k, a, b;
fscanf(in,"%d%d%d%d", &n, &k, &a, &b);
nrAp[0] = 1;
long long sol = 0;
for(int i = 1 ; i <= n ; ++i){
fscanf(in,"%d", r + i);
r[i] = (r[i] + r[i - 1]) % k;
if(i >= a) sol += nrAp[r[i]];
if(i >= a) nrAp[r[i - a + 1]]++;
if(i >= b) nrAp[r[i - b]]--;
}
fprintf(out,"%lld\n", sol);
return 0;
}