⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ac1252.pas

📁 uralcode
💻 PAS
字号:
program ural1252;
const
  size=130000;
var
  p:array[1..size]of longint;
  n,i,x,ans1,ans2:longint;
function gcd(a,b:longint):longint;
  var
    t:longint;
  begin
    if a<b then begin t:=a;a:=b;b:=t;end;
    repeat
      t:=a mod b;a:=b;b:=t;
    until b=0;
    gcd:=a;
  end;
procedure update(var a:longint);
  begin
    if p[i]=0 then exit;
    inc(x);
    if p[i]=x then exit;
    if a=0 then
      a:=abs(p[i]-x)
    else
      a:=gcd(a,abs(p[i]-x));
  end;
begin
  read(n);
  for i:=1 to n do begin
    read(x);
    p[x]:=i;
  end;

  x:=0;
  for i:=1 to size do
    update(ans1);

  x:=0;
  for i:=size downto 1 do
    update(ans2);

  if (ans1=0) or (ans2=0) then
    writeln(n-1)
  else
    if ans1>ans2 then writeln(ans1-1) else writeln(ans2-1);
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -