Cod sursa(job #472552)
| Utilizator | Data | 25 iulie 2010 16:18:06 | |
|---|---|---|---|
| Problema | Hashuri | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include <cstdio>
#include <set>
using namespace std;
#define radix 18
#define range 262144
#define mask 262143
set<int> *S[range];
int main ()
{int n,x,op,a,b;
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
scanf("%d",&n);
for (int i=1;i<=n;i++)
{scanf("%d %d",&op,&x);
a=x&mask;
b=x>>18;
if(S[a]==NULL)
S[a]=new set<int>();
switch(op)
{case 1:S[a]->insert(b);break;
case 2:S[a]->erase(b);break;
case 3:printf("%d\n",S[a]->count(b));break;
}
}
return 0;
}
