Cod sursa(job #1826413)

Utilizator EmplopiStefan Nitu Emplopi Data 10 decembrie 2016 13:43:20
Problema Divk Scor 90
Compilator c Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <stdio.h>
#include <stdlib.h>

int freq[100000], v[500001];

int main(){
    FILE *fin, *fout;
    int n, k, a, b, i, nr, s;
    fin=fopen("divk.in", "r");
    fout=fopen("divk.out", "w");
    fscanf(fin, "%d%d%d%d", &n, &k, &a, &b);
    s=0;
    for(i=1;i<=n;i++){
        fscanf(fin, "%d", &nr);
        v[i]=(v[i-1]+nr)%k;
        if(i>=a)
            freq[v[i-a]]++;
        if(i>b)
            freq[v[i-b-1]]--;
        s+=freq[v[i]];
    }
    fprintf(fout, "%d", s);
    fclose(fin);
    fclose(fout);

    return 0;
}