Cod sursa(job #1552721)
| Utilizator | 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;
}
