提交时间:2024-05-20 13:44:30

运行 ID: 147916

# include <bits/stdc++.h> using namespace std; int s[1005] , n , maxn = -1; void dfs(int cnt , int a , int b , int x , int y) { if (cnt > n){ maxn = max(maxn , min(a , b)); return; } if (x < n / 2) dfs(cnt + 1 , a + s[cnt] , b , x + 1 , y) ; if (y < n / 2) dfs(cnt + 1 , a , b + s[cnt] , x , y + 1); return; } int main() { cin >> n; for (int i = 1 ; i <= n;i ++) cin >> s[i]; dfs(1 , 0 , 0 , 0 , 0); cout << maxn << endl; return 0; }