记录编号 570 评测结果 WTATT
题目名称 [NOI 1999]生日蛋糕 最终得分 20
用户昵称 Gravatar辨机ZN 是否通过 未通过
代码语言 Pascal 运行时间 6.097 s
提交时间 2008-07-19 20:02:02 内存使用 0.11 MiB
显示代码纯文本
program ex(f1,f2);
 var
  f1,f2:text; i,j,m,n:longint;
  max:int64;
procedure search(step,r,h:longint; v,s:longint);
 var i,j:longint;
     v2,s2:longint;
  begin
   for i:=1 to r-1 do
    for j:=1 to h-1 do
     begin
      if v-(i*i*j)>=0 then
       begin
        v2:=v-(i*i*j);
        s2:=s+(2*i*j);
        if (step=m)and(v2=0) then
         begin
          if s2<max then max:=s2;
         end
        else begin
         if (step<m)and(v2>0) then
           search(step+1,i,j,v2,s2);
             end;
       end;
     end;
  end;
 procedure ri;
  var i,j:longint;
   begin
     max:=99999999;
     for i:=1 to trunc(sqrt(n)) do
     for j:=1 to (n div (i*i)) do
     search(2,i,j,(n-i*i*j),(i*i+2*i*j));
     writeln(f2,max);
   end;
begin
  assign(f1,'cake.in'); reset(f1);
  assign(f2,'cake.out'); rewrite(f2);
  readln(f1,n);
  readln(f1,m);
  ri;
  close(f1);
  close(f2);
 end.