Pagini recente » Cod sursa (job #136821) | Cod sursa (job #2517025) | Cod sursa (job #724649) | Cod sursa (job #1792615) | Cod sursa (job #1180024)
type Lista=^celula;
celula=record
info: longint;
next: lista;
end;
const y=666013;
var a: array[0..666013] of lista;
x, i, n: longint;
b1, b2: array[0..1 shl 18] of char;
o: 1..3;
function cauta(x: longint): boolean;
var r: lista;
u: boolean;
begin
u:=false;
r:=a[x mod y];
while (r<>nil) and (r^.info<>x) do r:=r^.next;
if r<>nil then u:=true;
cauta:=u;
end;
procedure adauga(x: longint);
var r, p, v: lista;
Begin
if not cauta(x) then
BEGIN
r:=a[x mod y]; p:=nil;
while (r<>nil) and (r^.info<x) do Begin
p:=r;
r:=r^.next;
end;
if (p=nil) and (r<>nil) then Begin
new(p);
p^.info:=x;
p^.next:=r;
a[x mod y]:=p;
end else
if (r=nil) and (p=nil) then Begin
new(v);
v^.info:=x;
v^.next:=nil;
a[x mod y]:=v;
end
else if p<>nil then
Begin
new(v);
v^.info:=x;
v^.next:=r;
p^.next:=v;
end
END;
end;
procedure sterge(x: longint);
var v, r, p: lista;
Begin
r:=a[x mod y]; p:=nil;
while (r<>nil) and (r^.info<>x) do Begin
p:=r;
r:=r^.next;
end;
if (r<>nil) and (r^.info=x) then Begin
if p=nil then a[x mod y]:=r^.next
else p^.next:=r^.next;
dispose(r);
end;
end;
begin
assign(input,'hashuri.in'); settextbuf(input,b1);
reset(input);
assign(output,'hashuri.out'); settextbuf(output,b2);
rewrite(output);
for i:=0 to 666013 do a[i]:=nil;
readln(n);
for i:=1 to n do
Begin
readln(o, x);
if o=1 then adauga(x) else
if o=2 then sterge(x) else
if o=3 then if cauta(x) then writeln(1) else writeln(0);
end;
close(input);
close(output);
end.