记录编号 207012 评测结果 AAAAAAAAAA
题目名称 [NOIP 2015]信息传递 最终得分 100
用户昵称 GravatarMarvolo 是否通过 通过
代码语言 Pascal 运行时间 0.185 s
提交时间 2015-11-10 13:33:56 内存使用 2.46 MiB
显示代码纯文本
program zht;
var
i,n,t,bz,cs,h,s,ans,l:longint;
bh:array[0..200000,1..2] of longint;
a:array[0..200000] of longint;

function min(a,b:longint):longint;
begin
if a<b then min:=a
 else min:=b;
end;

procedure find(b:longint);
begin

if bh[b,1]=h then begin s:=l-bh[b,2]+1; exit; end;
if bh[b,1]>0 then if bh[b,1]<>h then begin s:=99999999;exit;end;

inc(cs);

if cs=5000 then begin t:=b;bz:=1;exit;end;


bh[b,1]:=h;
bh[b,2]:=l+1;


l:=bh[b,2];
find(a[b]);

end;

begin
assign(input,'2015message.in');
assign(output,'2015message.out');
reset(input);
rewrite(output);

readln(n);
for i:=1 to n do
read(a[i]);

h:=0;

ans:=99999999;

for i:=1 to n do
begin
if bh[i,1]<>0 then continue;
if bh[a[i],1]<>0 then continue;
inc(h);

cs:=0;
bz:=0;
t:=0;
s:=0;
l:=0;

bh[i,1]:=h;


find(a[i]);

while bz<>0 do
begin
bz:=0;
cs:=0;
find(t);
end;

ans:=min(ans,s);
end;
writeln(ans);

close(input);
close(output);

end.