Pagini recente » Cod sursa (job #2395646) | Cod sursa (job #2266) | Cod sursa (job #715549) | Cod sursa (job #1610499) | Cod sursa (job #424941)
Cod sursa(job #424941)
#include<stdio.h>
#define Nmax 100010
int x,i,n,k,a,b,val,dif,r;
long long sol;
struct nod {int inf; nod *adr;};
nod *v[Nmax],*p;
int main()
{
freopen("divk.in","r",stdin);
freopen("divk.out","w",stdout);
scanf("%d %d %d %d",&n,&k,&a,&b);
for(i=1;i<=n;i++)
{
scanf("%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;
}
}
printf("%lld",sol);
return 0;
}