Pagini recente » Cod sursa (job #161827) | Cod sursa (job #896467) | Cod sursa (job #1852806) | Cod sursa (job #1674354) | Cod sursa (job #604505)
Cod sursa(job #604505)
#include <iostream>
#include <vector>
#define U 666013
using namespace std;
vector <int> Hash[U];
int Search (int X)
{
int Key=X%U;
for (unsigned i=0; i<Hash[Key].size (); ++i)
{
if (X==Hash[Key][i])
{
return i;
}
}
return -1;
}
void Insert (int X)
{
int Key=X%U;
if (Search (X)==-1)
{
Hash[Key].push_back (X);
}
}
void Delete (int X)
{
int Key=X%U;
if (Search(X)!=-1)
{
for (vector <int> :: iterator H=Hash[Key].begin (); H!=Hash[Key].end (); ++H)
{
if (*H==X)
{
Hash[Key].erase (H);
return;
}
}
}
}
int main()
{
freopen ("hashuri.in", "r", stdin);
freopen ("hashuri.out", "w", stdout);
int N;
scanf ("%d", &N);
for (; N>0; --N)
{
int Type, X;
scanf ("%d %d", &Type, &X);
if (Type==1)
{
Insert (X);
}
if (Type==2)
{
Delete (X);
}
if (Type==3)
{
if (Search (X)==-1)
{
printf ("0\n");
}
else
{
printf ("1\n");
}
}
}
return 0;
}