#include <iostream> #include <numeric> #include <vector> using namespace std; int main() { int n; cin>>n; vector<int> arr(n,0); for(int i=0;i<n;i++){ cin>>arr[i]; } int total_sum=accumulate(arr.begin(), arr.end(), 0); if(total_sum%2==1){ cout<<"false"; return 0; } int target=total_sum/2; vector<bool> dp(target+1,false);//dp[i]表示每个数值为i的数是否是子集 dp[0]=true; for(int i=0;i<n;i++){//遍历arr数组 for(int j=target;j>=arr[i];j--){ dp[j]=dp[j]||dp[j-arr[i]]; } } cout<<(dp[target]==true? "true":"false"); return 0; } // 64 位输出请用 printf("%lld")