#include <bits/stdc++.h>
using namespace std;

#define int long long
#define len(v) (int) (v.size())
#define all(v) v.begin(), v.end()
#define rall(v) rbegin(v), rend(v)

istream& operator>>(istream& is, vector<int>& v) {
    for (int i = 0; i < len(v); i++) {
        is >> v[i];
    }
    return is;
}

ostream& operator<<(ostream& os, vector<int>& v) {
    for (int i = 0; i < len(v); i++) {
        os << v[i] << ' ';
    }
    return os;
}

const int INF = 1e18;

void solve() {
    int n;
    cin >> n;

    vector<int> a(n);
    cin >> a;
    a.push_back(INF);
    a.push_back(INF);
    n++;
    sort(rall(a));
    int mn = a.back();
    a.pop_back();

    vector<int> r(n);
    r[n - 1] = r[n - 2] = n - 1;
    for (int i = n - 3; i >= 0; i--) {
        if (a[i] - a[i + 1] >= a[i + 1] - a[i + 2]) {
            r[i] = r[i + 1];
        }
        else {
            r[i] = i + 1;
        }
    }

    vector<int> dp1(n, -INF), dp2(n, -INF);
    // base
    dp2[3] = INF;
    for (int i = 4; i <= r[i] + 1; i++) {
        if (i == n) {
            if (a[n - 2] - a[n - 1] >= a[n - 1] - mn) {
                cout << "YES\n";
                return;
            }
        }
        else {
            dp1[i] = INF;
        }
    }

    // calc
    for (int i = 3; i + 1 < n; i++) {
        if (a[i - 2] - a[i - 1] >= a[i - 1] - a[i + 1]) {
            dp2[i + 1] = max(dp2[i + 1], dp1[i]);
        }
        if (dp2[i] - a[i - 1] >= a[i - 1] - a[i + 1]) {
            dp2[i + 1] = max(dp2[i + 1], a[i - 2]);
        }

        if (dp1[i] - a[i] >= a[i] - a[i + 1]) {
            for (int j = i + 1; j <= r[i - 1] + 1; j++) {
                if (j == n) {
                    if (a[n - 2] - a[n - 1] >= a[n - 1] - mn && a[i - 2] - a[i - 1] >= a[i - 1] - mn) {
                        cout << "YES\n";
                        return;
                    }
                }
                else {
                    if (a[i - 2] - a[i - 1] < a[i - 1] - a[j]) break;
                    dp1[j] = max(dp1[j], a[i - 1]);
                }
            }
        }
        if (a[i - 2] - a[i] >= a[i] - a[i + 1]) {
            for (int j = i + 1; j <= r[i - 1] + 1; j++) {
                if (j == n) {
                    if (a[n - 2] - a[n - 1] >= a[n - 1] - mn && dp2[i] - a[i - 1] >= a[i - 1] - mn) {
                        cout << "YES\n";
                        return;
                    }
                }
                else {
                    if (dp2[i] - a[i - 1] < a[i - 1] - a[j]) break;
                    dp1[j] = max(dp1[j], a[i - 1]);
                }
            }
        }
    }

    if ((a[n - 3] - a[n - 2] >= a[n - 2] - mn && dp1[n - 1] - a[n - 1] >= a[n - 1] - mn) ||
        (dp2[n - 1] - a[n - 2] >= a[n - 2] - mn && a[n - 3] - a[n - 1] >= a[n - 1] - mn)) {
        cout << "YES\n";
    }
    else {
        cout << "NO\n";
    }
}

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    int t = 1;
    cin >> t;
    while (t--) {
        solve();
    }
}