Cod sursa(job #289859)

Utilizator jeanFMI - Petcu Ion Cristian jean Data 27 martie 2009 08:54:17
Problema Divk Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<fstream.h>

long long n,s,i,r,sol,a,b,k,x;
struct nod {long long inf; nod *adr;};

nod *v[100010];

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

void cauta(long long i)
 {
   nod *p;

    long long dif,val=v[i]->inf;


	for(p=v[i]->adr;p;p=p->adr)


	 { dif=val-(p->inf);

	   if(dif>=a&&dif<=b) sol++;

		else if(dif>b) break;

	 }
 }
int main()
{
ifstream f("divk.in");
ofstream g("divk.out");

f>>n>>k>>a>>b;

for(i=1;i<=n;i++)

 { f>>x;

   r=(r+x)%k;

   if(!r&&i<=b) sol++;

   add(r,i);

   cauta(r);
 }

g<<sol;
f.close();
g.close();
return 0;
}