#ifdef LOCAL #include #else #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2,popcnt,lzcnt,abm,bmi,bmi2") #include #define debug(...) ((void)0) #define postprocess(...) ((void)0) #endif using namespace std; using ll = long long; using ld = long double; void solve([[maybe_unused]] int test) { int N; cin >> N; vector positive, negative; for (int i = 0; i < N; i++) { ll x; cin >> x; if (x > 0) positive.push_back(x); if (x < 0) negative.push_back(x); } sort(positive.begin(), positive.end()); sort(negative.begin(), negative.end()); if (positive.size() + negative.size() <= 1) { cout << "Yes" << endl; return; } if (positive.empty()) { cout << "No" << endl; return; } if (negative.empty()) { cout << "No" << endl; return; } auto sum_positive = accumulate(positive.begin(), positive.end(), 0LL); auto sum_negative = accumulate(negative.begin(), negative.end(), 0LL); if (sum_positive - positive.back() <= sum_negative) { cout << "Yes" << endl; return; } if (sum_negative - negative.back() <= sum_positive) { cout << "Yes" << endl; return; } cout << "No" << endl; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int t = 1; // cin >> t; for (int i = 1; i <= t; i++) { solve(i); } postprocess(); }