Pagini recente » Cod sursa (job #1566338) | Cod sursa (job #2129114) | Cod sursa (job #879838) | Cod sursa (job #1548246)
#include <cstdio>
#include <cstring>
#include <vector>
#define NMAX 500005
using namespace std;
int nra[NMAX] , nrb[NMAX] , v[NMAX];
int n , k , a , b , r , ra ,rb , sol;
int solve(int nr);
int main() {
freopen("divk.in" , "r" , stdin);
freopen("divk.out" , "w" , stdout);
scanf("%d %d %d %d" , &n , &k , &a , &b);
long long sum = 0 , x;
for(int i = 1 ; i <= n ; ++i) {
scanf("%d" , &x);
sum += x;
v[i] = sum % k;
}
v[0] = 0;
for(int i = 0 ; i <= n ; ++i) {
r = v[i];
if(i >= a) {
ra = v[i - a];
++nra[ra];
}
sol += nra[r] - nrb[r];
if(i >= b) {
rb = v[i - b];
++nrb[rb];
}
}
printf("%d" , sol);
return 0;
}