Pagini recente » Cod sursa (job #2698471) | Cod sursa (job #2872265) | Cod sursa (job #1751080) | Cod sursa (job #3143723) | Cod sursa (job #1526910)
#include <cstdio>
#include <vector>
#define M 666013
using namespace std;
vector <int> H[M];
const int a = 43;
vector <int>::iterator it;
void Insert(int x)
{
int val = ((x * a)) % M;
for(it = H[val].begin(); it!=H[val].end() ; it++)
if(*it == x) return;
H[val].push_back(x);
}
void Delete(int x)
{
int val = ((x * a)) % M;
for(it = H[val].begin(); it!=H[val].end() ; it++)
if(*it == x) {H[val].erase(it);return;}
}
int Search(int x)
{
int val = ((x * a)) % M;
for(it = H[val].begin(); it!=H[val].end() ; it++)
if(*it == x) return 1;
return 0;
}
int main()
{
int n,p,x,i;
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d %d",&p,&x);
switch(p)
{
case 1:
{
Insert(x);
break;
}
case 2:
{
Delete(x);
break;
}
case 3:
{
printf("%d\n",Search(x));
}
}
}
}