题目描述 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30,每个物品有一个体积(正整数)。 要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。
输入输出格式 输入格式: 一个整数,表示箱子容量 一个整数,表示有n个物品 接下来n行,分别表示这n 个物品的各自体积 输出格式: 一个整数,表示箱子剩余空间。
输入输出样例 输入样例#1: 24 6 8 3 12 7 9 7 输出样例#1: 0
程序如下:
var
n,m,max,k,l:longint;
a:
array[
1..
30]
of longint;
procedure init;
var i:longint;
begin
readln(n);
readln(m);
for i:=
1 to m
do
readln(a[i]);
end;
procedure main(k,l:longint);
begin
if (k>m)
or(l>=n)
then
begin
if (l<=n)
and(max>n-l)
then max:=n-l;
exit;
end;
main(k+
1,l+a[k]);
main(k+
1,l);
end;
begin
init;
max:=maxlongint;
main(
1,
0);
write(max);
end.
转载请注明原文地址: https://ju.6miu.com/read-660079.html