Cod sursa(job #289876)

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