Pagini recente » Cod sursa (job #622715) | Cod sursa (job #356024) | Cod sursa (job #1386580) | Cod sursa (job #1364682) | Cod sursa (job #2346783)
/*#include <bits/stdc++.h>
using namespace std;
//operatia de tipul 1: se adauga elementul x la multime (unde x este un parametru al operatiei). Daca x este deja in multime, atunci aceasta ramane neschimbata.
//operatia de tipul 2: se sterge elementul x, daca acesta este deja in multime. In caz contrar, multimea ramane neschimbata.
//operatia de tipul 3: returneaza 1 daca si numai daca x este in multime, iar in caz contrar returneaza 0.
set<int>s;
int n,x,o;
int main()
{
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
scanf("%d",&n);
while (n){
n--;
scanf("%d%d",&o,&x);
if (o==1) s.insert(x);
if (o==2) s.erase(x);
if (o==3) {
printf("%d\n",s.find(x)!=s.end());
}
}
return 0;
}
*/
#include <bits/stdc++.h>
using namespace std;
int n,p=1000000;
int h(int x){
return x%p;
}
vector<int>v[1000000];
int o,x,nr,i;
int main()
{
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
scanf("%d",&n);
while (n){
n--;
scanf("%d%d",&o,&x);
if (o==1){
v[h(x)].push_back(x);
continue;
}
if (o==2){
nr=v[h(x)].size();
for (i=0;i<nr;i++) if (v[h(x)][i]==x) {
v[h(x)].erase(v[h(x)].begin()+i);
break;
}
continue;
}
if (o==3){
nr=v[h(x)].size();
for (i=0;i<nr;i++) if (v[h(x)][i]==x) {
printf("1\n");
break;
}
if (i==nr) printf("0\n");
continue;
}
}
return 0;
}