Pagini recente » Cod sursa (job #2385424) | Cod sursa (job #1254902) | Cod sursa (job #2361300) | Cod sursa (job #963812) | Cod sursa (job #1500061)
#include <fstream>
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
int n,i,op,p=666013,x;
struct lista
{
int x;
lista *leg;
}*H[666013];
void adaug(int x)
{
int r=x%p;
lista *q;
q=new lista;
q->x=x;
q->leg=H[r];
H[r]=q;
}
void sterge(int x)
{
int r=x%p;
if(H[r])
{
if(H[r]->x==x)
{
lista*q;
q=H[r];
H[r]=H[r]->leg;
delete q;
}
else
{
lista *q;lista *k;
for(q=H[r];q->leg&&q->leg->x!=x;q=q->leg);
if(q->leg&&q->leg->x==x)
{
k=q->leg;
q->leg=k->leg;
delete k;
}
}
}
}
int cauta (int x)
{
int r=x%p;
lista *q;
for(q=H[r];q&&q->x!=x;q=q->leg);
if(q&&q->x==x) return 1;
return 0;
}
int main()
{
f>>n;
for(i=1;i<=n;i++)
{
f>>op>>x;
if(op==1) {adaug(x);continue;}
if(op==2) {sterge(x);continue;}
g<<cauta(x)<<'\n';
}
return 0;
}