Cod sursa(job #1552721)

Utilizator PopoviciRobertPopovici Robert PopoviciRobert Data 18 decembrie 2015 15:19:37
Problema Divk Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <cstdio>
#define MAXN 500000
#define MAXK 100000
int v[MAXN+1],nra[MAXK+1];
int main(){
    FILE*fi,*fout;
    int n,k,a,b,con,i,nr,poz;
    fi=fopen("divk.in" ,"r");
    fout=fopen("divk.out" ,"w");
    fscanf(fi,"%d%d%d%d" ,&n,&k,&a,&b);
    for(i=1;i<=n;i++){
         fscanf(fi,"%d" ,&nr);
         v[i]=(v[i-1]+nr)%k;
    }
    con=0;
    nra[0]++;
    for(i=1;i<=a;i++)
       nra[v[i]]++;
    for(i=a+1;i<=n;i++){
         if(i-b>0)
             nra[v[i-b]]--;
         con+=nra[v[i]];
    }
    fprintf(fout,"%d" ,con);
    fclose(fi);
    fclose(fout);
    return 0;
}