📄 p1179b.bak
字号:
program p1179b;
var
now:array[1..20] of longint;
t,can:array[0..10000] of boolean;
ans:array[1..20] of longint;
best:longint;
n,k,i:longint;
procedure get(p:longint; var maxn:longint);
var
i,j:longint;
begin
t:=can;
for i:=1 to p do
for j:=0 to maxn do
if can[j] then
t[j+now[i]]:=true;
can:=t; maxn:=maxn+now[p];
end;
procedure solve(p,last,max:longint);
var
i,j,ma,h:longint;
begin
if p=k then begin
if max>best then begin
best:=max;
ans:=now;
end;
exit;
end;
for i:=last+1 to max+1 do
begin
now[p+1]:=i; h:=0;
fillchar(can,sizeof(can),false);
can[0]:=true;
for j:=1 to n do
get(p+1,h);
for j:=1 to h+1 do
if not can[j] then begin
ma:=j-1;
break;
end;
solve(p+1,i,ma);
end;
end;
begin
readln(n,k);
best:=0;
solve(0,0,0);
for i:=1 to k do
write(ans[i],' ');
writeln('MAX=',best);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -