#include<iostream>
#include<vector>
#include<string>
#include<set>
#include<map>
#include<algorithm>
#include<queue>
#include<list>
#include<stack>
#include<cstdio>
#include<fstream>
#include<numeric>
#include<functional>
#include<utility>
#include<memory>
#include<iomanip>
using namespace std;
long long int n;
int main(){
while (cin >> n){
vector<long long int> arr;
vector<long long int> sum_temp(n);
long long int sum = 0;
for (int i = 0; i < n; i++){
int t;
cin >> t;
sum += t;
sum_temp[i] = sum;
arr.push_back(t);
}
if (sum % 2){
cout << "NO" << endl;
}
else{
set<long long int> record;
bool flag = false;
for (int i = 0; i < n; i++){
if (record.count(2 * arr[i])){
flag = true;
break;
}
long long int diff = sum - 2 * sum_temp[i];
if (diff == 0){
flag = true;
break;
}
if (diff > 0){
record.insert(diff);
}
}
if (!flag){
record.clear();
for (int i = n - 1; i >= 0; i--){
if (record.count(2 * arr[i])){
flag = true;
break;
}
long long int diff = 2 * sum_temp[i] - sum;
if (diff == 0){
flag = true;
break;
}
if (diff > 0){
record.insert(diff);
}
}
}
if (flag) cout << "YES" << endl;
else cout << "NO" << endl;
}
}
return 0;
}
808D Array Division
最新推荐文章于 2022-04-11 08:13:00 发布