Cod sursa(job #1769690)
| Utilizator | Data | 2 octombrie 2016 22:52:54 | |
|---|---|---|---|
| Problema | Divk | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.57 kb |
#include <cstdio>
using namespace std;
int x[500000], n, k, a, b, i, j;
long long s[500000];
unsigned long long sol, nra[500000], nrb[500000];
int main() {
FILE *f = fopen("divk.in", "r");
FILE *g = fopen("divk.out", "w");
fscanf(f, "%d %d %d %d\n", &n, &k, &a, &b);
for (i = 1; i <= n; i++) {
fscanf(f, "%d\n", &x[i]);
s[i] = (1LL*(s[i-1]+x[i]))%k;
if (i >= a)
nra[s[i-a]]++;
if (i >= b+1)
nra[s[i-b-1]]--;
sol += 1LL*nra[s[i]];
}
fprintf(g, "%d", sol);
return 0;
}
