Cod sursa(job #785357)

Utilizator batistaUPB-Oprea-Cosmin-Dumitru batista Data 8 septembrie 2012 16:16:03
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include<fstream>
#define P 666013
using namespace std;
struct nod{int info;nod*adr;}*v[P],*p,*q;
int n,i,op,nr;
void insereaza(int nr)
{int x=nr%P;
	p=new nod;
	p->info=nr; p->adr=v[x]; v[x]=p;
}

void sterge(int nr)
{int x=nr%P;
	nod*cp=v[x];
	while(v[x])
	{
	  if(v[x]->info==nr)
		v[x]->info=-1;
	  v[x]=v[x]->adr;
	}
	v[x]=cp;
}

int cauta(int nr)
{int x=nr%P,gasit=0;
	p=v[x];
	while(p)
	{
		if(p->info==nr){gasit=1;break;}
		p=p->adr;
	}
  return gasit;
}
int main()//insereaza,sterge,verifica daca exista nr....nr<=2000.000.000
{
	ifstream f("hashuri.in");ofstream g("hashuri.out");
	f>>n;
	for(i=1;i<=n;i++)
	{
		f>>op>>nr;
		if(op==1)insereaza(nr); else
		if(op==2)sterge(nr); else
		if(op==3)g<<cauta(nr)<<'\n'; 
	}
   f.close();g.close();
return 0;}