Cod sursa(job #539230)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 22 februarie 2011 18:00:23
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
# include <fstream.h>
ifstream f ("hashuri.in");
ofstream g ("hashuri.out");
int m=666013,op,x,n,i;

 struct nod
 {
	 int info;
	 nod *urm;
 }*a[700000],*p,*q;

  void adauga (int x)
  {
	p=new nod;
    p->info=x;
    p->urm=a[x%m];
    a[x%m]=p;
  }	
 
   void sterge (int x)
   {
	   p=a[x%m];
	   if (p)
	   if (p->info==x)
	   {
		   q=p;
		   p=p->urm;
		   a[x%m]=p;
	   }
	   else
		   while (p->urm)
		   {
			   if (p->urm->info==x)
			   {
				   q=p;
				   if (p->urm->urm)
				   p->urm=p->urm->urm;
				   else
					   p->urm=0;
				   break;
			   }
			   p=p->urm;
		   }
      
   }
  
  
  int verif (int x)
  {
	  p=a[x%m];
	  while (p)
	  {
		  if (p->info==x)
			  return 1;
		  p=p->urm;
	  }
		  
		return 0;
   }

int main ()
{
	f>>n;
	
	for (i=1;i<=n;i++)
	{
		f>>op>>x;
		if (op==1)
			adauga (x);
		if (op==2)
			sterge (x);
		if (op==3)
			g<<verif (x)<<"\n";
	}
	return 0;
}