Pagini recente » Cod sursa (job #202189) | Monitorul de evaluare | Cod sursa (job #201622) | Arhiva de probleme | Cod sursa (job #2037576)
#include <cstdio>
#include <set>
#include <algorithm>
const int M=666013;
std::set<int> H[M];
int hashh(int key){
return key%M;
}
int main()
{
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
int n;
scanf("%d",&n);
int op,x;
for (int i=0;i<n;i++){
scanf("%d%d",&op,&x);
int xhash=hashh(x);
auto xit = std::find(std::begin(H[xhash]),
std::end(H[xhash]),x);
switch(op){
case 1:{
if (xit==std::end(H[xhash])){
H[xhash].insert(x);
// printf("push %d\n",x);
}
}break;
case 2:{
if (xit!=std::end(H[xhash])){
H[xhash].erase(xit);
// printf("erase %d\n",x);
}
}break;
case 3:{
if (xit!=std::end(H[xhash])){
printf("1\n");
}else{
printf("0\n");
}
}break;
}
}
return 0;
}