Pagini recente » Cod sursa (job #103102) | Cod sursa (job #136649) | Cod sursa (job #219562) | Cod sursa (job #2711551) | Cod sursa (job #2881873)
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
const int MOD = 666013;
vector<int> buckets[MOD + 5];
void add(int x) {
int x_bucket = x % MOD;
// verific daca x se afla deja in bucket
for(int i = 0; i < buckets[x_bucket].size(); i++)
if(buckets[x_bucket][i] == x)
return;
// daca nu se afla il adaug
buckets[x_bucket].push_back(x);
}
void del(int x) {
int x_bucket = x % MOD;
// il caut pe x in bucket
for(int i = 0; i < buckets[x_bucket].size(); i++)
if(buckets[x_bucket][i] == x) {
swap(buckets[x_bucket][i], buckets[x_bucket][ buckets[x_bucket].size() - 1 ]);
buckets[x_bucket].pop_back();
return;
}
}
bool exists(int x) {
int x_bucket = x % MOD;
for(int i = 0; i < buckets[x_bucket].size(); i++)
if(buckets[x_bucket][i] == x)
return true;
return false;
}
int main() {
freopen("hashuri.in", "r", stdin);
freopen("hashuri.out", "w", stdout);
int n, op, x;
scanf("%d", &n);
for(int i = 1; i <= n; i++) {
scanf("%d %d", &op, &x);
if(op == 1)
add(x);
else if(op == 2)
del(x);
else if(op == 3)
printf("%d\n", exists(x));
}
return 0;
}