Pagini recente » Cod sursa (job #428288) | Cod sursa (job #996000) | Cod sursa (job #765476) | Cod sursa (job #601609) | Cod sursa (job #863234)
Cod sursa(job #863234)
#include <cstdio>
#include <vector>
#define sp 666013
using namespace std;
vector <int> v[700000];
int n;
int cauta(int b)
{
if(v[b%sp].empty())
return 0;
vector<int>::iterator it;
for(it=v[b%sp].begin();it!=v[b%sp].end();it++)
{
if(*it==b)
return (it-v[b%sp].begin()+1);
}
return 0;
}
void rm(int i,int b)
{
i--;
for(i;i<v[b%sp].size()-1;i++)
v[b%sp][i]=v[b%sp][i+1];
v[b%sp].pop_back();
}
int main()
{
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int a,b;
scanf("%d%d",&a,&b);
if(a==1)
{
if(!cauta(b))
{
v[b%sp].push_back(b);
}
}
else if(a==2)
{
int zb=cauta(b);
if(zb)
{
rm(zb,b);
}
}
else
printf("%d\n",(cauta(b)!=0));
}
return 0;
}