记录编号 685 评测结果 ATAAAEEEEE
题目名称 [NOI 1999]生日蛋糕 最终得分 40
用户昵称 GravatarEnAsn 是否通过 未通过
代码语言 Pascal 运行时间 1.894 s
提交时间 2008-07-21 08:42:28 内存使用 0.00 MiB
显示代码纯文本
program ex;
var
 f1,f2:text;
 n,m,r,h,i:longint;
 ss:longint;
procedure dfs(m,lr,lh,s,n:longint);
 var
  r,h,h1,v,s1:longint;
 begin
  if m=0 then
   begin
    if n=0 then ss:=s;
    exit;
   end;
 for r:=lr-1 downto m do
    for h:=lh-1 downto m do
      begin
       v:=n-r*r*h;
       s1:=s+2*r*h;
       if (v>0)or((m=1)and(v=0))then
        if (s1<ss) then
         dfs(m-1,r,h,s1,v);
      end;
 end;
begin
 assign(f1,'cake.in');
 reset(f1);
 readln(f1,n,m);
 ss:=999999;
 for r:=trunc(sqrt(n div m)) downto m do
   for h:=n div (r*r) downto m do
    if 2*r*h+r*r<ss then
     dfs(m-1,r,h,2*r*h+r*r,n-r*r*h);
 assign(f2,'cake.out');
 rewrite(f2);
 writeln(f2,ss);
 close(f1);
 close(f2);
end.