记录编号 |
685 |
评测结果 |
ATAAAEEEEE |
题目名称 |
[NOI 1999]生日蛋糕 |
最终得分 |
40 |
用户昵称 |
EnAsn |
是否通过 |
未通过 |
代码语言 |
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.