ac1324.pas

来自「uralcode」· PAS 代码 · 共 39 行

PAS
39
字号
program ural1324;
const
  r:longint=750000000;
var
  l,m:longint;
  t:byte;
function remain(x,y:longint):longint;
  begin
    remain:=x div y+y-2+ord(x mod y=y-1);
  end;
function len(x:longint;out:boolean):byte;
  var
    res:byte;
    i,t,b,min:longint;
  begin
    res:=0;
    while x>1 do begin
      inc(res);min:=maxlongint;
      for i:=2 to x do begin
        t:=remain(x,i);
        if t<min then begin min:=t;b:=i;end;
        if t>min then break;
      end;
      if out then writeln(b);
      x:=min;
    end;
    len:=res;
  end;
begin
  read(l);
  t:=len(l,false);
  writeln(t);
  repeat
    m:=(l+r+1) div 2;
    if len(m,false)>t then r:=m-1 else l:=m;
  until l=r;
  t:=len(l,true);
end.

⌨️ 快捷键说明

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