Pagini recente » Cod sursa (job #1208067) | Cod sursa (job #2972490) | Cod sursa (job #378742) | Cod sursa (job #2762829) | Cod sursa (job #998168)
Cod sursa(job #998168)
#include <cstdio>
using namespace std;
struct lista
{
int x;
lista* u;
}*a[9973][2];
lista *cauta(int x)
{
lista *p=a[x%9973][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<9973;++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%9973][1]->u=p;
p->x=x;
p->u='\0';
a[x%9973][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%9973][1]=p;
delete q;
}
break;
}
case 3:
{
scanf("%d",&x);
if(cauta(x)) printf("1\n");
else printf("0\n");
break;
}
}
}
return 0;
}