提交时间:2024-05-18 16:15:48

运行 ID: 147564

#include<iostream> using namespace std; const int N = 1e2 + 10, M = 1e4 + 10; int n, a[N], cnt = 0, f[N][M]; int main(){ cin >> n; for(int i = 0; i < n; i++){ cin >> a[i]; cnt += a[i]; } cnt /= 2; for(int i = 0; i < n; i++){ for(int j = n/2; j >= 1; j--){ for(int k = cnt; k >= a[i]; k--){ f[j][k] = max(f[j][k], f[j-1][k-a[i]] + a[i]); } } } cout << f[n/2][cnt]; return 0; }