Pagini recente » Cod sursa (job #2224921) | Cod sursa (job #2696850) | Cod sursa (job #2127285) | Cod sursa (job #1250746) | Cod sursa (job #405648)
Cod sursa(job #405648)
# include <fstream>
# include <iostream>
# include <cstdio>
using namespace std;
struct nod {
int k;
nod*next;};
nod *v[1000003];
int h (int a)
{
return a%1000000;
}
int apare (int x)
{
int i=h(x);
nod *p=v[i];
while (p)
{
if (p->k==x)
return 1;
p=p->next;
}
return 0;
}
void add (int x)
{
int i=h(x);
nod *p=new nod;
p->k=x;
p->next=v[i];
v[i]=p;
}
void Del (int x)
{
int i=h(x);
nod *p=v[i];
if (v[i]->k==x)
{
v[i]=p->next;
delete p;
}
else
{
while (p->next && p->next->k!=x)p=p->next;
nod *q;
q=p->next;
p->next=q->next;
delete q;
}
}
int main ()
{
ifstream fin ("hashuri.in");
freopen ("hashuri.out", "w", stdout);
int n, k, x;
fin>>n;
for (int i=1;i<=n;i++)
{
fin>>k>>x;
if (k==1)
{
if (apare(x)==0)
add(x);
}
else
if (k==2)
{
if (apare(x))
Del(x);
}
else
printf("%d\n", apare(x));
}
return 0;
}