Pagini recente » Cod sursa (job #3310977) | Cod sursa (job #3323018) | Cod sursa (job #1667732) | Cod sursa (job #1273772) | Cod sursa (job #3357948)
#include <fstream>
using namespace std;
const int P = 1000019;
int head[P];
int val[1000005];
int nxt[1000005];
int cnt = 0;
int find(int x) {
int h = x % P;
for (int i = head[h]; i; i = nxt[i]) {
if (val[i] == x) return 1;
}
return 0;
}
void insert(int x) {
int h = x % P;
for (int i = head[h]; i; i = nxt[i]) {
if (val[i] == x) return;
}
cnt++;
val[cnt] = x;
nxt[cnt] = head[h];
head[h] = cnt;
}
void remove(int x) {
int h = x % P;
int prev = 0;
for (int i = head[h]; i; i = nxt[i]) {
if (val[i] == x) {
if (prev == 0) {
head[h] = nxt[i];
} else {
nxt[prev] = nxt[i];
}
return;
}
prev = i;
}
}
int main() {
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
int n;
fin >> n;
for (int i = 0; i < n; ++i) {
int op, x;
fin >> op >> x;
if (op == 1) {
insert(x);
} else if (op == 2) {
remove(x);
} else {
fout << find(x) << "\n";
}
}
fin.close();
fout.close();
return 0;
}