Pagini recente » Cod sursa (job #2592796) | Cod sursa (job #1660551) | Cod sursa (job #1583063) | Cod sursa (job #2368965) | Cod sursa (job #869820)
Cod sursa(job #869820)
type pnod=^nod;
nod=record
info:longint;
dr:pnod;
end;
var a:array[0..524287] of PNOD;
c:byte;n,j:longint;d,i:longint; t:boolean;
f,g:text;
procedure adaugare(e:longint);
var d:pnod;
begin
new(d);
d^.dr:=a[i];
d^.info:=e;
a[i]:=d;
end;
function verificare(x:longint):boolean;
var r,k:pnod;ver:boolean;
begin
ver:=false;
If (a[i]=nil) then
begin
If c=1 then
Begin
new(a[i]);
a[i]^.info:=x;
a[i]^.dr:=nil;
ver:=true;
end;
end
else
begin
if a[i]^.dr<>nil then
Begin
r:=a[i];
If r^.info=x then
Begin
ver:=true;
If c=2 then
Begin
r:=r^.dr;
a[i]:=a[i]^.dr;
end;
end
else
repeat
if r^.dr^.info=x then
begin
ver:=true;
if c=2 then
Begin
If r^.dr^.dr<>nil then
Begin
k:=r;
r:=r^.dr;
r:=r^.dr;
k^.dr:=r;
end
else
begin
k:=r^.dr;
r^.dr:=nil;
end;
end;
end;
If r^.dr<>nil then
r:=r^.dr;
until (r^.dr=nil);
end;
If a[i]^.dr=nil then
begin
If c=2 then
If x=a[i]^.info then
new(a[i]);
If x=a[i]^.info then
ver:=true;
end;
end;
verificare:=ver;
end;
begin
assign(f,'hashuri.in');reset(f);
assign(g,'hashuri.out');rewrite(g);
readln(f,n);
for j:=1 to n do
begin
readln(f,c,d);
i:=d mod 524287;
t:=verificare(d);
If (c=1) and (t=false) then
begin
adaugare(d); end;
if c=3 then
begin
if t=true then
begin
writeln(g,'1');
end
else
begin
writeln(g,'0');
end
end;
end;
close(f);
close(g);
end.