Cod sursa(job #1695175)

Utilizator andreicoman299Coman Andrei andreicoman299 Data 26 aprilie 2016 18:06:41
Problema Divk Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.53 kb
#include <stdio.h>
#include <stdlib.h>

long long sum[500001], v[500001], rez;
int main(){
    int n, k, i, x, a, b;
    FILE*fi,*fo;
    fi=fopen("divk.in","r");
    fo=fopen("divk.out","w");
    fscanf(fi,"%d%d%d%d", &n, &k, &a, &b);
    for(i=1;i<=n;i++){
        fscanf(fi,"%d", &x);
        sum[i]=(sum[i-1]+x)%k;
        if(i>=a)
            v[sum[i-a]]++;
        if(i>b)
            v[sum[i-b-1]]--;
        rez+=v[sum[i]];
    }
    fprintf(fo,"%lld", rez);
    fclose(fi);
    fclose(fo);
    return 0;
}