Pagini recente » Cod sursa (job #3265605) | Cod sursa (job #886191) | Cod sursa (job #3280772) | Cod sursa (job #2478358) | Cod sursa (job #239308)
Cod sursa(job #239308)
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <vector>
#include <list>
using namespace std;
#define HMAX 666013
list<int> a[HMAX];
int N, op, x;
int find(int x)
{
int p = x % HMAX;
for (list<int> :: iterator it = a[p].begin(); it != a[p].end(); it++)
if (*it == x)
return 1;
return 0;
}
void add(int x)
{
if (find(x)) return;
a[x%HMAX].push_back(x);
}
void remove(int x)
{
int p = x % HMAX;
for (list<int> :: iterator it = a[p].begin(); it != a[p].end(); it++)
if (*it == x)
{
*it = *(--a[p].end());
a[p].pop_back();
return;
}
}
int main()
{
freopen("hashuri.in", "r", stdin);
freopen("hashuri.out", "w", stdout);
scanf("%d", &N);
for (int i = 0; i < N; i++)
{
scanf("%d %d", &op, &x);
if (op == 1)
add(x);
else if (op == 2)
remove(x);
else
printf("%d\n", find(x));
}
return 0;
}