Pagini recente » Cod sursa (job #542150) | Cod sursa (job #217269) | Cod sursa (job #2157341) | Cod sursa (job #2359822) | Cod sursa (job #327123)
Cod sursa(job #327123)
program hash;
type cell=^list;
list=record
v:longint;
urm:cell;
end;
var a,b:text;
i,j,k:longint;
op:shortint;
z:array[0..666012] of cell;
procedure insert(j:longint);
var i:longint;
r:cell;
begin
i:=j mod 666013;
r:=z[i];
if r=nil then
begin
new(z[i]);
r:=z[i];
r^.v:=j;
r^.urm:=nil;
exit;
end;
while (r^.urm<>nil) and (r^.v<>j) do
begin
r:=r^.urm;
end;
if (r^.v<>j) and (r^.urm=nil) then
begin
new(r^.urm);
r:=r^.urm;
r^.v:=j;
end;
end;
procedure delete(j:longint);
var i:longint;
r,v:cell;
begin
i:=j mod 666013;
v:=nil;
r:=z[i];
if r=nil then exit;
while (r^.urm<>nil) and (r^.v<>j) do
begin
v:=r;
r:=r^.urm;
end;
if v=nil then z[i]:=r^.urm else
if (r^.v=j) then
v^.urm:=r^.urm;
end;
procedure check(j:longint);
var i:longint;
r:cell;
begin
i:=j mod 666013;
r:=z[i];
if r=nil then begin Writeln(b,0); exit; end;
while (r^.urm<>nil) and (r^.v<>j) do
begin
r:=r^.urm;
end;
if (r^.v=j) then
Writeln(b,1) else Writeln(b,0);
end;
begin
assign(a,'hashuri.in');
assign(b,'hashuri.out');
reset(a);
rewrite(b);
Readln(a,k);
for i:=0 to 666012 do
z[i]:=nil;
for i:=1 to k do
begin
Readln(a,op,j);
if op=1 then insert(j) else
if op=2 then delete(j) else
check(j);
end;
close(b);
end.