Pagini recente » Istoria paginii utilizator/mdallee | Diferente pentru probleme-de-taietura intre reviziile 28 si 27 | Profil Valeriu_JV | Istoria paginii utilizator/ksil | Cod sursa (job #2378632)
#include <iostream>
#include <fstream>
#include <cstring>
#include <list>
using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
const int PRIM=666013;
list <int>V[PRIM];
list <int> :: iterator cautare(int x)
{
int lista=x%PRIM;
list <int> :: iterator i;
for(i=V[lista].begin();i!=V[lista].end();++i)
if(*i==x)
return i;
return V[lista].end();
}
void stergere(int x)
{
list <int> :: iterator i;
if(cautare(x)!=V[x%PRIM].end())
{
int lista=x%PRIM;
for(i=V[lista].begin();i!=V[lista].end();++i)
if(*i==x)
{
V[lista].erase(i);
break;
}
}
}
void insert_value(int x)
{
if(cautare(x)==V[x%PRIM].end())
V[x%PRIM].push_back(x);
}
int main()
{
int n,a,b;
in>>n;
for(int i=0;i<n;i++)
{
in>>a>>b;
if(a==1)
{
insert_value(b);
}
if(a==2)
{
stergere(b);
}
if(a==3)
{
if(cautare(b)!=V[b%PRIM].end())
out<<"1"<<"\n";
else
out<<"0"<<"\n";
}
}
}