Pagini recente » Cod sursa (job #2051364) | Cod sursa (job #1062854) | Cod sursa (job #1622048) | Cod sursa (job #2494043) | Cod sursa (job #1728327)
#include <fstream>
#include <vector>
#include <iterator>
#define NMAX 66013
using namespace std;
inline vector<int>::iterator find_in(vector<int> *H,int value){
int list = value % NMAX;
vector<int>::iterator it;
for(it=H[list].begin();it!=H[list].end();it++)
if(*it == value)
break;
return it;
}
inline void add(vector<int> *H,int value){
int list = value % NMAX;
vector<int>::iterator it = find_in(H,value);
if(it == H[list].end())
H[list].push_back(value);
}
inline void delete_from(vector<int> *H,int value){
vector<int>::iterator it = find_in(H,value);
int list = value % NMAX;
if(it != H[list].end()){
H[list].erase(it);
}
}
inline int exista(vector<int> *H,int val){
int list = val % NMAX;
return find_in(H,val) != H[list].end();
}
int main()
{
vector<int> H[NMAX];
int nr,op,val;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
f>>nr;
for(int i=0;i<nr;i++){
f >> op >> val;
if(op == 1)
add(H,val);
else if(op == 2)
delete_from(H,val);
else g << exista(H,val) << "\n";
}
f.close();
g.close();
return 0;
}