Pagini recente » Cod sursa (job #757689) | Cod sursa (job #2548783) | Cod sursa (job #204228) | Cod sursa (job #2352459) | Cod sursa (job #2299251)
#include <iostream>
#include <fstream>
#include <cmath>
#include <vector>
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
#define M 1500007
int n;
vector<int> h[M];
void add(int);
void del(int);
bool search(int);
int main(){
int i;
int op, x;
fin >> n;
while(n--){
fin >> op >> x;
// cout << op << ' ' << x << '\n';
if(op == 1) add(x);
else if(op == 2) del(x);
else fout << search(x) << '\n';
}
}
bool search(int x){
int val = x % M;
int i;
for(i = 0; i < h[val].size(); i++) if(h[val][i] == x) return 1;
return 0;
}
void add(int x){
int val = x % M;
int i;
bool ex = false;
for(i = 0; i < h[val].size() && !ex; i++) if(h[val][i] == x) ex = true;
if(!ex) h[val].push_back(x);
}
void del(int x){
int val = x % M;
vector<int>::iterator it;
for(it = h[val].begin(); it != h[val].end(); it++)
if(*it == x){
h[val].erase(it);
break;
}
}
//bool EPrim(int x){
// int i;
// int qx = sqrt(x);
// if(x % 2 == 0 && x != 2) return 0;
// for(i = 3; i <= sqrt(x); i += 2)
// if(x % i == 0) return 0;
// return 1;
//}