题目描述
有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。
要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。
输入格式
第一行为一个整数,表示箱子容量;
第二行为一个整数,表示有n个物品;
接下来n行,每行一个整数表示这n个物品的各自体积。
输出
一个整数,表示箱子剩余空间。
样例输入
24
6
8
3
12
7
9
7
样例输出
0
1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 int main() 5 { 6 int s, v[40], n, i, a[40], j; 7 cin >>s>> n; 8 for(i = 0; i < n; i++) 9 { 10 cin >> a[i]; 11 v[i] = s; 12 } 13 sort(a, a + n); 14 for(j = 0; j < n; j++) 15 for(i = n - 1 - j; i >= 0; i--) 16 { 17 if(v[j] >= a[i]) 18 v[j] -= a[i]; 19 } 20 sort(v, v + n); 21 cout << v[0] << endl; 22 }