Pagini recente » Rating Tiberiu Musat (tybyboom) | Cod sursa (job #1017754) | Cod sursa (job #904351) | Cod sursa (job #803444) | Cod sursa (job #868590)
Cod sursa(job #868590)
type pnod=^nod;
nod=record
info:longint;
dr:pnod;
end;
var a:array[1..33392] of pnod;
c:byte;n,j:integer;d,i:longint; t:boolean;
f,g:text;
swap:pnod;
procedure adaugare(e:longint);
var d:pnod;
begin
new(d);
d^.info:=e;
d^.dr:=a[i];
a[i]:=d;
end;
function verificare(x:longint):boolean;
var crt:pnod;ver:boolean;
begin
case c of
1 : begin
crt:=a[i];
while (crt<>nil) and (crt^.info<>x) do
crt:=crt^.dr;
if (crt=nil) then begin
adaugare(x);
end
end;
2 : begin
if (a[i]<>nil) then begin
if (a[i]^.info=x) then begin
swap:=a[i];
a[i]:=a[i]^.dr;
dispose(swap);
end else begin
crt:=a[i];
if (crt^.dr<>nil) then begin
while (crt^.dr^.info<>x) and (crt^.dr^.dr<>nil) do
crt:=crt^.dr;
if (crt^.dr^.info=x) then begin
swap:=crt^.dr;
crt^.dr:=crt^.dr^.dr;
dispose(swap);
end
end
end
end
end;
3 : begin
crt:=a[i];
while (crt<>nil) and (crt^.info<>x) do
crt:=crt^.dr;
if (crt=nil) then
verificare:=false
else
verificare:=true;
end
end
end;
begin
assign(f,'hashuri.in');reset(f);
assign(g,'hashuri.out');rewrite(g);
readln(f,n);
For i:=1 to 33392 do
begin
a[i]:=nil;
end;
for j:=1 to n do
begin
readln(f,c,d);
i:=(d mod 33391)+1;
t:=verificare(d);
if c=3 then
begin
if t=true then
writeln(g, '1')
else
writeln(g, '0');
end;
end;
close(f);
close(g);
end.