Pagini recente » Cod sursa (job #1839142) | Cod sursa (job #2837906) | Cod sursa (job #1176858) | Cod sursa (job #1350381) | Cod sursa (job #1654763)
#include <fstream>
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
int n,i,x,op;
struct nod
{
int x;
nod *next;
}*p[666013];
int verificare(int x)
{
int w=x%666013;
for(nod *q=p[w];q!=NULL;q=q->next)
if(q->x==x)
return 1;
return 0;
}
void adaugare(int x)
{
if(!verificare(x))
{
nod *q;
int w=x%666013;
q=new nod;
q->next=p[w];
q->x=x;
p[w]=q;
}
}
void scoatere(int x)
{
int w=x%666013;
if(p[w]!=NULL)
if(p[w]->x==x)
p[w]=p[w]->next;
else
{
nod *q=p[w];
for(nod *crt=q->next;crt!=NULL;crt=crt->next)
{
if(crt->x==x)
{
q->next=crt->next;
return;
}
else
q=crt;
}
}
}
int main()
{
fin>>n;
for(i=1;i<=n;i++)
{
fin>>op>>x;
switch(op)
{
case 1:
adaugare(x);break;
case 2:
scoatere(x);break;
case 3:
fout<<verificare(x)<<"\n";break;
}
}
return 0;
}