Cod sursa(job #1775592)

Utilizator mitroalexandru mitrofan mitro Data 10 octombrie 2016 16:21:13
Problema Divk Scor 50
Compilator c Status done
Runda Arhiva de probleme Marime 0.53 kb
#include <stdio.h>
#include <stdlib.h>
int nr[100001],s[100001];
int main()
{   FILE *fin,*fout;
    int n,k,a,b,i,rez,x;
    fin=fopen("divk.in","r");
    fout=fopen("divk.out","w");
    fscanf(fin,"%d %d %d %d",&n,&k,&a,&b);
    rez=0;
    for(i=1;i<=n;i++){
        fscanf(fin,"%d",&x);
        s[i]=(s[i-1]+x)%k;
        if(i>=a)
            nr[s[i-a]]++;
        if(i>b)
            nr[s[i-b-1]]--;
        rez+=nr[s[i]];
    }


    fprintf(fout,"%d",rez);
    fclose(fin);
    fclose(fout);
    return 0;
}