Cod sursa(job #472562)

Utilizator nicolaetitus12Nicolae Titus nicolaetitus12 Data 25 iulie 2010 16:51:02
Problema Hashuri Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include <cstdio>
#include <list>
#define range 1048576
#define mask 1048575
#define shift 20
using namespace std;

list<int> lista[range];
int main ()
{freopen("hashuri.in","r",stdin);
 freopen("hashuri.out","w",stdout);
 int i,n,x,op,a,b;
 list<int>::iterator it;
 scanf("%d",&n);
 for (i=1;i<=n;i++)
 {scanf("%d %d",&op,&x);
  a=x&mask;
  b=x>>shift;
  switch(op)
  {case 1:for (it=lista[a].begin();it!=lista[a].end();it++)
          {if(*it==b)
           {break;
           }
          }
          if(it==lista[a].end())
          {lista[a].push_front(b);
          }
   break;
   case 2:for (it=lista[a].begin();it!=lista[a].end();it++)
          {if(*it==b)
           {lista[a].erase(it);
            break;
           }
          }
          break;
   case 3:for (it=lista[a].begin();it!=lista[a].end();it++)
          {if(*it==b)
           {printf("1\n");
            break;
           }
          }
          if(it==lista[a].end())
          {printf("0\n");
          }
          break;
  }
 }
 return 0;
}