题解
2024-07-29 11:35:09
发布于:广东
11阅读
0回复
0点赞
//用AC狗改进了一下。
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> values(n);
for (int i = 0; i < n; ++i) {
cin >> values[i];
}
int sum = 0;
for (int i = 0; i < n; ++i) {
sum += values[i];
}bool dp[sum + 1] = {false};
dp[0] = true;
for (int i = 0; i < n; ++i) {
for (int j = sum; j >= values[i]; --j) {
dp[j] = dp[j] || dp[j - values[i]];
}
}int half_sum = sum / 2;
while (!dp[half_sum]) {
--half_sum;
}cout << sum - 2 * half_sum << endl;
return 0;
}
这里空空如也
有帮助,赞一个