Pagini recente » Cod sursa (job #479452) | Cei mai harnici utilizatori infoarena | Cod sursa (job #2046682) | Cod sursa (job #2096794) | Cod sursa (job #644346)
Cod sursa(job #644346)
#include <cstdio>
#include <vector>
using namespace std;
FILE *f,*s;
int i,j,k,l,m,n;
vector<int> g[666013];
vector<int>::iterator Find(int x)
{
int l=x%666013;
vector<int>::iterator it;
for(it=g[l].begin();it!=g[l].end();it++)
{
if (*it==x)
return it;
}
return g[l].end();
}
void Insert(int k)
{
l=k%666013;
if (Find(k)==g[l].end())
g[l].push_back(k);
}
void Delete(int k)
{
l=k%666013;
vector<int>::iterator it =Find(k);
if (it != g[l].end())
g[l].erase(it);
}
int main()
{
f=fopen("hashuri.in","r");
s=fopen("hashuri.out","w");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
{
int x,y;
fscanf(f,"%d %d",&x,&y);
if(x==1)
{
Insert(y);
}
else if(x==2)
{
Delete(y);
}
else
{
fprintf(s,"%d\n",Find(y)!=g[y%666013].end());
}
}
fclose(s);
return 0;
}