Cod sursa(job #765465)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 7 iulie 2012 19:49:04
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include<cstdio>
#define N 1000001
typedef struct nod
{int info;
nod *urm;}Nod;
int n,y,i,x;
Nod *h[N];

int F(Nod *l,int y)
{for(Nod *p=l;p;p=p->urm)
if(p->info==y)
       return 1;
return 0;}

void A(Nod *&l,int y)
{Nod *nou=new Nod;
nou->urm=l,nou->info=y,l=nou;}

void D(Nod *&l,int y)
{Nod *p=l,*q=l;
while(p&&p->info!=y)
      q=p,p=p->urm;
if(p)
      {if(q==p)
             l=l->urm;
      else
             q->urm=p->urm;
      delete p;}}

int main()
{freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
      {scanf("%d%d",&x,&y);
      if(x==1)
              {if(!F(h[y%N],y))
                      A(h[y%N],y);}
      else
              if(x==2)
                      {if(F(h[y%N],y))
                              D(h[y%N],y);}
              else
                      printf("%d\n",F(h[y%N],y));}
return 0;}