Cod sursa(job #289873)

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

void add(int i,int j)
 {  nod *c;
    c=new nod;
    c->inf=j;
    c->adr=v[i];
    v[i]=c;
 }


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++;

   add(r,i);


    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;
}