Pagini recente » Cod sursa (job #3033080) | Cod sursa (job #2464486) | Cod sursa (job #711395) | Cod sursa (job #764581) | Cod sursa (job #1179981)
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;
procedure adauga(x: longint);
var r, p, v: 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 (p=nil) then begin
new(p);
p^.info:=x;
p^.next:=r;
a[x mod y]:=p;
end
else
if (r<>nil) and (r^.info=x) or (p^.info=x) then
else
Begin
new(v);
v^.info:=x;
p^.next:=v;
v^.next:=r;
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;
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;
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);
if o=2 then sterge(x);
if o=3 then if cauta(x) then writeln(1) else writeln(0);
end;
close(input);
close(output);
end.