Cod sursa(job #289875)

Utilizator jeanFMI - Petcu Ion Cristian jean Data 27 martie 2009 09:12:02
Problema Divk Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#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;
}