//划分数组成两部分,和相等
//1 1 1 1 1 false;
//1 2 3 4 true; 重点考虑
//首尾指针, 最后一种情况特殊考虑;
#include<bits/stdc++.h>
using namespace std;
int main()
{ int n; cin >> n; if(n == 1){ cout << "false" << endl; return 0; } vector<int> v; int k; for(int i = 0; i < n; ++i){ cin >> k; v.push_back(k); } sort(v.begin(), v.end()); int i = 0, j = n - 1; int iPre = 0, jPre = n-1; long long sum1 = v[0], sum2 = v[n-1]; while(i < j) { if(i != iPre) sum1 += v[i]; if(j != jPre) sum2 += v[j]; if(sum1 == sum2){ iPre = i; i++; jPre = j; j--; } else if(sum1 < sum2) { iPre = i; i++; } else { jPre = j; j--; } } if(sum1 == sum2 && i!=j ) cout << "true" << endl; else if(sum1 > sum2){ //1 2 3 4 true; 重点考虑 k = 0; while(sum1 > sum2) { sum1 -= v[k]; sum2 += v[k]; k++; } if(sum1 == sum2) cout << "true" << endl; else cout << "false" << endl; } else cout << "false" << endl; return 0;
}