Pagini recente » Cod sursa (job #480376) | Cod sursa (job #1598400) | Cod sursa (job #2397300) | Cod sursa (job #3146545) | Cod sursa (job #611626)
Cod sursa(job #611626)
#include<iostream>
#include<fstream>
#include<list>
using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
int n;
list<int> l[666013];
inline int h(int q) {
return q%666013;
}
inline int findd(int nr) {
list<int>::iterator it;
for(it=l[h(nr)].begin();it!=l[h(nr)].end(); ++it)
if((*it)==nr) {
return 1;
break;
}
return 0;
}
inline void adauga(int nr) {
if(findd(nr)==0)
l[h(nr)].push_front(nr);
}
inline void sterge(int nr) {
list<int>::iterator it;
for(it=l[h(nr)].begin();it!=l[h(nr)].end(); ++it)
if((*it)==nr) {
l[h(nr)].erase(it);
break;
}
}
int main() {
int i,op,nr;
in >> n;
for(i=1;i<=n;++i) {
in >> op >> nr;
switch(op) {
case 1:
adauga(nr);
break;
case 2:
sterge(nr);
break;
case 3:
out << findd(nr) << "\n";
}
}
return 0;
}