Cod sursa(job #1180178)
Utilizator | Data | 30 aprilie 2014 01:07:46 | |
---|---|---|---|
Problema | Hashuri | Scor | 20 |
Compilator | fpc | Status | done |
Runda | Arhiva educationala | Marime | 2.72 kb |
Program hashuri;
const prim=99913;
type lista=^cell;
cell= record
info:longint;
pred:lista;
end;
var t,n,i,a,b,ok: longint;
lhash : array [0..99914] of lista;
v,r:lista;
procedure add(nod : longint; var v : lista);
var r : lista;
begin
new(r);
r^.info:=nod;
r^.pred:=v;
v:=r;
end;
begin
assign(input,'hashuri.in'); reset(input);
assign(output,'hashuri.out'); rewrite(output);
readln(t);
for i:=0 to prim do lhash[i]:=nil;
for i:=1 to t do begin
read(a,b);
v:=lhash[b mod prim];
case a of
1 : begin
while v<>nil do begin
if v^.info=b then ok:=1;
v:=v^.pred;
end;
if ok=0 then add(b,lhash[b mod prim]);
end;
3 : begin
while v<>nil do begin
if v^.info=b then ok:=1;
v:=v^.pred;
end;
writeln(ok);
ok:=0;
end;
2 : begin
if v<>nil then begin
if v^.info=b then
lhash[b mod prim]:=lhash[b mod prim]^.pred
else begin
while v^.pred<>nil do begin
if (v^.pred^.info=b) then
r:=v;
v:=v^.pred;
end;
if r<>nil then r^.pred:=r^.pred^.pred;
end;
end;
end;
end;
end;
close(input);
close(output);
end.