Pagini recente » Cod sursa (job #518003) | Cod sursa (job #2399767) | Cod sursa (job #2599630) | Cod sursa (job #1654442) | Cod sursa (job #998169)
Cod sursa(job #998169)
#include <cstdio>
using namespace std;
struct lista
{
int x;
lista* u;
}*a[666013][2];
lista *cauta(int x)
{
lista *p=a[x%666013][0];
while(p->u)
{
if(p->u->x==x) return p;
p=p->u;
}
return NULL;
}
int main()
{
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
int t,x;
lista *p,*q;
for(t=0;t<666013;++t)
{
a[t][0]=a[t][1]=new lista;
a[t][1]->u='\0';
}
scanf("%d",&t);
while(t)
{
--t;
scanf("%d",&x);
switch(x)
{
case 1:
{
scanf("%d",&x);
p=new lista;
a[x%666013][1]->u=p;
p->x=x;
p->u='\0';
a[x%666013][1]=p;
break;
}
case 2:
{
scanf("%d",&x);
p=cauta(x);
if(p)
{
q=p->u;
p->u=q->u;
if(!q->u) a[x%666013][1]=p;
delete q;
}
break;
}
case 3:
{
scanf("%d",&x);
if(cauta(x)) printf("1\n");
else printf("0\n");
break;
}
}
}
return 0;
}