Pagini recente » Cod sursa (job #2073947) | Cod sursa (job #854895) | Cod sursa (job #979197) | Cod sursa (job #2518548) | Cod sursa (job #1180016)
type Lista=^celula;
celula=record
info: longint;
next: lista;
end;
const y=7013;
var a: array[0..7013] of lista;
x, i, n: longint;
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 (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
if r=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');
reset(input);
assign(output,'hashuri.out');
rewrite(output);
for i:=0 to 7013 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.