Cod sursa(job #1476583)
Utilizator | Data | 25 august 2015 11:53:25 | |
---|---|---|---|
Problema | Divk | Scor | 100 |
Compilator | c | Status | done |
Runda | Arhiva de probleme | Marime | 0.43 kb |
#include <stdio.h>
#define MAX 500005
int n, i, j, k, x, a, b, K, s[MAX], r[MAX];
long long sol;
int main(){
freopen("divk.in", "r", stdin);
freopen("divk.out", "w", stdout);
scanf("%d%d%d%d", &n, &K, &a, &b);
r[0] = 1;
for(i = 1; i <= n; i++){
scanf("%d", &x);
s[i] = (s[i - 1] + x) % K;
}
for(i = a; i <= n; i++){
sol += r[s[i]];
r[s[i - a + 1]]++;
if(i >= b)
r[s[i - b]]--;
}
printf("%lld\n", sol);
return 0;
}