Pagini recente » Cod sursa (job #3271878) | Cod sursa (job #1747013) | Cod sursa (job #2222167) | Cod sursa (job #29952) | Cod sursa (job #2733737)
// problema hashuri
#include <iostream>
#include <fstream>
#include <cmath>
#include <algorithm>
#include <string>
#include <cstring>
#include <vector>
#include <stack>
#include <queue>
#include <deque>
#include <list>
#define Div 700000
#define NMaxDiv 3000 // numarul maxim de clase de caturi posibile
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
int n;
list<int> Hash[NMaxDiv];
void Insert(int x) {
Hash[x / Div].push_back(x);
}
void Delete(int x) {
auto p = find(Hash[x / Div].begin(), Hash[x / Div].end(), x);
if (p != Hash[x / Div].end()) Hash[x / Div].erase(p);
}
bool Find(int x) {
auto p = find(Hash[x / Div].begin(), Hash[x / Div].end(), x);
return (p != Hash[x / Div].end());
}
int main() {
int p, x;
for (fin >> n; n; --n) {
fin >> p >> x;
if (p == 1) Insert(x);
else if (p == 2) Delete(x);
else fout << Find(x) << '\n';
}
}