Cod sursa(job #424935)

Utilizator jeanFMI - Petcu Ion Cristian jean Data 25 martie 2010 12:47:59
Problema Divk Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<stdio.h>

int x,i,n,k,a,b,val,dif,r;
long long sol;
struct nod {int inf; nod *adr;};
nod *v[100010],*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;
}