Pagini recente » Cod sursa (job #686631) | Cod sursa (job #1263484) | Cod sursa (job #710188) | Cod sursa (job #663268) | Cod sursa (job #381051)
Cod sursa(job #381051)
#include <cstdio>
#include <vector>
using namespace std;
#define FIN "hashuri.in"
#define FOUT "hashuri.out"
#define P 666013
int n;
vector <int> H[P];
void swap(int a, int b)
{
int aux;
aux = a;
a = b;
b = aux;
}
int find(int number)
{
int i, k;
k = number % P;
for (i = 0; i < H[k].size(); ++ i)
if (H[k][i] == number)
return i;
return -1;
}
void add(int number)
{
int i, k;
k = number % P;
if (find(number) == -1)
H[k].push_back(number);
}
void erase(int number)
{
int i, k;
k = number % P;
i = find(number);
if (i != -1)
{
swap(H[k][i], H[k][H[k].size() - 1]);
H[k].pop_back();
}
}
int main()
{
int i, type, number;
freopen(FIN, "r", stdin);
freopen(FOUT, "w", stdout);
scanf("%d", &n);
for (i = 1; i <= n; ++ i)
{
scanf("%d %d", &type, &number);
if (type == 1)
add(number);
else if (type == 2)
erase(number);
else
printf("%d\n", find(number) != -1);
}
}