Pagini recente » Cod sursa (job #1746559) | Cod sursa (job #1723517) | Cod sursa (job #2435111) | Cod sursa (job #3187635) | Cod sursa (job #832303)
Cod sursa(job #832303)
///timing 11:53
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream in ("hashuri.in");
ofstream out ("hashuri.out");
typedef long long i64;
class hash {
int Key;
vector <i64> * H;
public:
hash() { Key = 0; H = new vector<i64>[1]; };
hash(int);
void insert(i64);
void erase(i64);
int check(i64);
};
hash :: hash(int K){
Key = K;
H = new vector <i64> [K];
}
void hash :: insert (i64 value) {
int X = value % Key;
H[X].push_back(value);
}
void hash :: erase (i64 value) {
int X = value % Key;
vector<i64>::iterator it;
for(it = H[X].begin(); it != H[X].end(); it++)
if(*it == value){
H[X].erase(it);
break;
}
}
int hash :: check(i64 value) {
int X = value % Key;
vector<i64>::iterator it;
for(it = H[X].begin(); it != H[X].end(); it++)
if(*it == value) return 1;
return 0;
}
int main()
{
hash A(666013);
i64 number;
int N, operation;
in >> N;
while(N--){
in >> operation >> number;
switch (operation) {
case 1: A.insert(number); break;
case 2: A.erase(number); break;
case 3: out << A.check(number) << "\n"; break;
}
}
return 0;
}