Pagini recente » Cod sursa (job #2233756) | Cod sursa (job #861819) | Cod sursa (job #1081672) | Cod sursa (job #1865147) | Cod sursa (job #1496320)
#include <fstream>
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
int n,i,op,x;
typedef struct celula{
int val;
celula *next;
}*lista;
int mod=666013;
lista hash[666013];
lista q;
lista prec;
void insert(int x)
{
int lin=x%mod;
for(lista p=hash[lin]; p; p=p->next)
if(p->val==x) return;
q=new celula;
q->val=x;
q->next=hash[lin];
hash[lin]=q;
}
void del(int x)
{
int lin=x%mod;
if (hash[lin]==NULL) return;
if(hash[lin]->val==x) hash[lin]=hash[lin]->next;
else {
prec=hash[lin];
q=prec->next;
while(q!=NULL)
{
if(q->val==x)
{
prec->next=q->next;
return;
}
prec=q;
q=q->next;
}
}
}
bool ret(int x)
{
int lin=x%mod;
for(lista p=hash[lin]; p; p=p->next)
if(p->val==x) return 1;
return 0;
}
int main()
{
fin>>n;
for(i=1;i<=n;i++)
{
fin>>op>>x;
if(op==1) insert(x);
else if(op==2) del(x);
else fout<<ret(x)<<'\n';
}
return 0;
}