Description
有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30=,每个物品有一个体积(正整数)。
要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。
Input
一个整数,表示箱子容量。一个整数,表示有n个物品。接下来n行,分别表示这n 个物品的各自体积
Output
一个整数,表示箱子剩余空间。
Sample Input
24
6
8
3
12
7
9
7
Sample Output
0
解题思路:读入数据,然后用递归的方法,直到放不下新的东西或者东西已经放完就退出递归。
程序:
var
n,x,a,mx:longint;
f:array[1..20000] of longint;
procedure try(s,ans:longint);
begin
if (s=0) then mx:=s;
if ans>x then exit;
if s<=0 then exit;
try(s-f[ans],ans+1);
try(s,ans+1);
end;
begin
readln(n);
readln(x);
for a:=1 to x do
readln(f[a]);
mx:=n;
try(n,1);
write(mx);
end.