Cod sursa(job #626117)

Utilizator razielreaperMatei Andrei razielreaper Data 26 octombrie 2011 14:03:15
Problema Hashuri Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.06 kb
#include <fstream>
#define mod 666013
using namespace std;
int n,i,x,nro;
struct point{int inf;point *leg;} *h[666012];
ifstream f("hashuri.in");
ofstream g("hashuri.out");
 
void insert(int x)
{
    int ind;
    point *p;
    ind=x%mod;
    p=new point;
    p->inf = x; p->leg = h[ind];
    h[ind] = p;
return;
}
int search(int x)
{
    int ind;
    point *p;
    p=new point;
    ind=x%mod;
    p=h[ind];
   for(p = h[ind]; p!=NULL; p=p->leg ) if(p->inf==x) return 1;
    return 0;
}
void errase(int x)
{
    point *p,*u;
    int ind;
      ind=x%mod;
      if(h[ind]->inf==x){p=h[ind];h[ind]=h[ind]->leg;delete p;}
      else{
          u=h[ind]; p=u->leg;
          while(p->inf!=x && p){u=p; p=p->leg;}
          u->leg=p->leg;
          delete p;
	  }
 
    return;
}
int main()
{
    f>>n;
    for(i=0;i<=mod;i++){h[i]=NULL;}
    for(i=1;i<=n;i++)
    {
        f>>nro>>x;
        if(nro==1)insert(x);
        if(nro==2)errase(x);
        if(nro==3)g<<search(x)<<'\n';
    }
    f.close();
    g.close();
   return 0;
}