Pagini recente » Cod sursa (job #1683184) | Cod sursa (job #388465) | Cod sursa (job #2289183) | Cod sursa (job #239744) | Cod sursa (job #1165302)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
const int MAX = 666013;
int N;
vector<int> H[MAX];
int getHashKey(int Element) {
return Element % MAX;
}
bool Find(int Element) {
int Key = getHashKey(Element);
for(size_t i = 0; i < H[Key].size(); i++) {
if(H[Key][i] == Element)
return true;
} return false;
}
void Add(int Element) {
int Key = getHashKey(Element);
H[Key].push_back(Element);
}
void Delete(int Element) {
int Key = getHashKey(Element);
H[Key].erase(find(H[Key].begin(), H[Key].end(), Element));
}
int main() {
ifstream in("hashuri.in"); ofstream out("hashuri.out");
in >> N;
for(int i = 1, op, X; i <= N; i++) {
in >> op >> X;
if(op == 1 && !Find(X)) {
Add(X);
} else if(op == 2 && Find(X)) {
Delete(X);
} else if(op == 3) {
out << (Find(X) ? 1 : 0) << "\n";
}
} in.close(); out.close();
}