比赛 20101117 评测结果 AAWTWWWWWA
题目名称 教官 最终得分 30
用户昵称 make 运行时间 0.000 s
代码语言 Pascal 内存使用 0.00 MiB
提交时间 2010-11-17 09:41:59
显示代码纯文本
program officer;
var
 a,ans:array [1..10000] of longint;
 n,sp:longint;
 f1,f2:text;

procedure init;
var  i:longint;
begin
 assign(f1,'officer.in'); reset(f1);
 assign(f2,'officer.out'); rewrite(f2);
 readln(f1,n);
 for i:=1 to n do
  readln(f1,a[i]);
 close(f1);
 sp:=n;
end;

function lcm(x,y:longint):longint;
var i,j,temp:longint;
begin
 i:=x; j:=y;
 while i mod j<>0 do begin
  temp:=j;
  j:=i mod j;
  i:=temp;
 end;
 lcm:=(x*y) div j ;
end;

procedure play;
var i,f,s,temp:longint;
begin
 for i:=1 to n do begin
  f:=a[i];
  s:=0;
  while f<>i do begin
   s:=s+1;
   f:=a[f];
  end;
  ans[i]:=s+1;
 end;
 while sp>1 do begin
  sp:=sp-1;
  temp:=lcm(ans[sp],ans[sp+1]);
  ans[sp]:=temp;
 end;
end;

procedure print;
begin
 writeln(f2,ans[1]);
 close(f2);
end;

begin
 init;
 play;
 print;
end.