Pagini recente » Cod sursa (job #1976701) | Cod sursa (job #307647) | Cod sursa (job #819285) | Cod sursa (job #2619285) | Cod sursa (job #1552705)
#include <cstdio>
#define MAXN 500000
#define MAXK 100000
int v[MAXN+1],next[MAXN+1],ind[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;
next[i]=ind[v[i]];
ind[v[i]]=i;
}
con=0;
for(i=1;i<=n;i++){
poz=i;
while(poz>0&&i-poz<=b){
if(i-poz>=a)
con++;
poz=next[poz];
}
if(v[i]==0&&i>=a&&i<=b)
con++;
}
fprintf(fout,"%d" ,con);
fclose(fi);
fclose(fout);
return 0;
}