#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn = 10005;
int dp[maxn],w[maxn];
int main(){
int n,cnt = 0;
cin>>n;
for(int i=1;i<=n;i++)
cin>>w[i] , cnt += w[i];
for(int i=1;i<=n;i++){
for(int j=cnt/2;j>=w[i];j--){
dp[j] = max(dp[j] , dp[j - w[i]] + w[i]);
}
}
cout<<dp[cnt/2]<<" "<<cnt - dp[cnt/2]<<endl;
return 0;
}
原文:https://www.cnblogs.com/QFNU-ACM/p/12807124.html