Pagini recente » Cod sursa (job #425833) | Cod sursa (job #2617741) | Cod sursa (job #171577) | Cod sursa (job #510351) | Cod sursa (job #289876)
Cod sursa(job #289876)
#include<stdio.h>
int dif,val,n,i,r,sol,a,b,k,x;
struct nod {int inf; nod *adr;};
nod *v[100010],*p;
int main()
{
FILE *f=fopen ("divk.in","r");
FILE *g=fopen ("divk.out","w");
fscanf(f,"%d %d %d %d",&n,&k,&a,&b);
for(i=1;i<=n;++i)
{ fscanf(f,"%d",&x);
r=(r+x)%k;
if(!r && i>=a && i<=b) ++sol;
p=new nod;
p->inf=i;
p->adr=v[r];
v[r]=p;
val=v[r]->inf;
for(p=v[r]->adr;p;p=p->adr)
{ dif=val-(p->inf);
if(dif>=a && dif<=b) ++sol;
else if(dif>b) break;
}
}
fprintf(g,"%d",sol);
fclose(f);
fclose(g);
return 0;
}