Pagini recente » Cod sursa (job #1913990) | Cod sursa (job #1058516)
#include <fstream>
#include <iostream>
using namespace std;
struct col
{
short val;
col *next;
};
struct linie
{
col *prim;
linie *next;
}*p;
void ad(int x)
{
int lin=x/666013+1, i=0;
linie *tl=p, *adl;
col *tc, *adc;
for(i=0;i<lin;i++)
{
if(!tl->next)
{
adl=new linie;
adl->prim=new col;
adl->prim->next=NULL;
adl->next=NULL;
tl->next=adl;
}
tl=tl->next;
}
tc=tl->prim;
while(tc->next)
{
tc=tc->next;
if(tc->val==x%666013)
return;
}
adc=new col;
adc->next=NULL;
adc->val=x%666013;
tc->next=adc;
}
void st(int x)
{
int lin=x/666013+1, i=0;
linie *tl=p;
col *t;
col *tc;
for(i=0;i<lin;i++)
{
if(!tl->next)
return;
tl=tl->next;
}
tc=tl->prim;
while(tc->next)
{
if(tc->next->val==x%666013)
{
t=tc->next;
tc->next=tc->next->next;
delete t;
return;
}
tc=tc->next;
}
}
int search(int x)
{
int lin=x/666013+1, i=0;
linie *tl=p;
for(i=0;i<lin;i++)
{
if(!tl->next)
return 0;
tl=tl->next;
}
col *tc=tl->prim->next;
while(tc)
{
if(tc->val==x%666013)
return 1;
tc=tc->next;
}
return 0;
}
int main(int argc, char *argv[])
{
int n, op, x, i;
p=new linie;
p->prim=new col;
p->prim->next=NULL;
p->next=NULL;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
fin>>n;
for(i=0;i<n;i++)
{
fin>>op>>x;
if(op==1)
ad(x);
else if(op==2)
st(x);
else
fout<<search(x)<<endl;
}
return 0;
}