萌新,没怎么学算法,写了一段自认为全错的代码,结果全AZ了,求大佬指教,代码如下:
#include<iostream>
using namespace std;
int main() {
int v, n, weight[31], what[31], sum = 0;
cin >> v >> n;
for (int i = 1; i <= n; i++) {
cin >> weight[i];
sum += weight[i];
what[i] = 1;
}
for (int i = 1; i <= n; i++) {
if (sum > v) {
sum -= weight[i];
what[i] = 0;
}
for (int j = 1; j <= n && j != i; j++) {
if (what[j] == 0 && sum + weight[j] <= v) {
sum += weight[j];
}
}
}
cout << v - sum << endl;
return 0;
}