Pagini recente » Cod sursa (job #3125220) | Cod sursa (job #67869) | Cod sursa (job #2013835) | Cod sursa (job #936747) | Cod sursa (job #501943)
Cod sursa(job #501943)
#include <stdio.h>
#include <stdlib.h>
#include <set>
using namespace std;
struct element
{
int nr;
element *subE;
};
int div(int x)
{
return(x%1327);
}
struct setHash
{
set<int> setH;
};
//element elements[1000000];
set<int> mySet;
set<int> sets[10000];
int main()
{
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
int n;
scanf("%d\n",&n);
/*for(int i=0;i<n;i++)
{
int f,nr,poz;
element *e,aux;
scanf("%d",&f);
if(f==1)
{
scanf("%d\n",&nr);
&e.nr=nr;
poz=div(nr);
if(elements[poz].nr!=NULL)
{
aux=elements[poz];
elements[poz]=&e;
elements[poz].subE=&aux;
}
else elements[poz]=&e;
}
else if(f==2)
{
scanf("%d\n",&nr);
poz=div(nr);
if(elements[poz].nr!=NULL)
{
e=elements[poz];
do
{
if(e.nr==nr)
{
//aux=e;
&e=&e.subE;
// e=NULL;
return;
}
else e=e.subE;
}while(e.subE!=NULL);
}
}
else if(f==3)
{
scanf("%d\n",&nr);
poz=div(nr);
if(elements[poz].nr!=NULL)
{
e=elements[poz];
do
{
if(e.nr==nr)
{
}
// else e=e.subE;
}while(e.subE!=NULL);
}
}
}*/
/*for(int i=0;i<n;i++)
{
int nr,f;
scanf("%d %d\n",&f,&nr);
set<int>::iterator it;
if(f==1)
{
if (mySet.find(nr)==mySet.end()) mySet.insert(nr);
}
else if(f==2)
{
mySet.erase(nr);
}
else if(f==3)
{
it=mySet.find(nr);
if (it!=mySet.end()) printf("%d\n",1);
else printf("%d\n",0);
}
}*/
for(int i=0;i<n;i++)
{
int nr,f,poz;
scanf("%d %d\n",&f,&nr);
set<int>::iterator it;
poz=div(nr);
if(f==1)
{
//poz=div(nr);
sets[poz].insert(nr);
}
else if(f==2)
{
sets[poz].erase(nr);
}
else if(f==3)
{
it=sets[poz].find(nr);
if (it!=sets[poz].end()) printf("%d\n",1);
else printf("%d\n",0);
}
}
return 0;
}