比赛 20101117 评测结果 ATTTTTTTTA
题目名称 教官 最终得分 20
用户昵称 王者自由 运行时间 0.000 s
代码语言 Pascal 内存使用 0.00 MiB
提交时间 2010-11-17 08:39:04
显示代码纯文本
program officer;
type arr=array[1..10000] of longint;
var i,n:longint; m:int64;
    A,B:arr;
function Orded(A:arr; n:longint):boolean;
var i:longint;
begin
  for i:=1 to n do if A[i]<>i then exit(false);
  exit(true);
end;
procedure Move(A:arr; var B:arr; n:longint);
var i:integer; C:arr;
begin
  for i:=1 to n do C[A[i]]:=B[i];
  B:=C;
end;
begin
  assign(input,'officer.in'); reset(input);
  assign(output,'officer.out'); rewrite(output);
  readln(n);
  for i:=1 to n do
  begin
    readln(A[i]);
    B[i]:=i;
  end;
  m:=0;
  repeat
    m+=1;
    Move(A,B,n);
  until Orded(B,n);
  writeln(m);
  close(input); close(output);
end.