Cod sursa(job #1769690)

Utilizator FlorinHajaFlorin Gabriel Haja FlorinHaja 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;
}