fork download
#include <bits/stdc++.h>

using namespace std;

#define MOD 1000000007
double pi = acos(-1);
void fast() {ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);}

unsigned long long modex(unsigned long long a, unsigned long long b, unsigned long long m) {
    if(b == 0) return 1;
    unsigned long long x = modex(a, b/2, m)%m;
    x = (x*x)%m;
    if(b % 2) x *= a;
    return x%m;
}
unsigned long long modinv(unsigned long long b) { return modex(b, MOD - 2, MOD); }

int main() {
    fast();
    //freopen("func.in", "r", stdin);
    // freopen("output.out", "w", stdout);
    int t;
    t = 1;
    cin >> t;

    
    while(t --) {
        int n;
        cin >> n;
        
        vector <long long> v(n);

        for(int i = 0; i < n; i ++) {
            cin >> v[i];
        }

        long long lastMax = -1e10;
        long long lastSum = 0;
        string sol = "YES";
        for(int i = 0; i < n; i ++) {
            if(lastSum <= 0) {
                lastSum = v[i];
                lastMax = v[i];
            } else {
                lastSum += v[i];
                lastMax = max(v[i], lastMax);
            }

            if(lastSum > lastMax) {
                sol = "NO";
                break;
            }
        }

        lastMax = -1e10;
        lastSum = 0;
        for(int i = n-1; i >= 0; i --) {
            if(lastSum <= 0) {
                lastSum = v[i];
                lastMax = v[i];
            } else {
                lastSum += v[i];
                lastMax = max(v[i], lastMax);
            }

            if(lastSum > lastMax) {
                sol = "NO";
                break;
            }
        }

        cout << sol << "\n";
    }
}
Success #stdin #stdout 0.01s 5316KB
stdin
Standard input is empty
stdout
YES