#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long lg;
#define cp copy (N.begin(), N.end(), u);
lg find_m(vector <lg>& N)
{
    lg m=1000000000;
    for (lg i=0; i!=N.size(); i++)
    {
        if (N[i]<m)
            m=N[i];
    }
    return m;
}
lg find_mx(vector <lg>& N)
{
    lg m=-1000000000;
    for (lg i=0; i!=N.size(); i++)
    {
        if (N[i]>m)
            m=N[i];
    }
    return m;
}
bool ost(lg x, lg y)
{
    bool b;
    if (x%y==0)
        b=true;
    else
        b=false;
    return b;
}

int main()
{
    lg n, a, t, d, s;
    cin>>t;
    vector <lg> N;
    vector <string> V;
    for (lg x=0; x!=t; x++)
    {
        N.clear();
        cin>>n;
        for (lg j=0; j!=n; j++)
        {
            cin>>a;
            N.push_back(a);
        }
        sort (N.begin(), N.end());
        lg v1=N[0], v2=N[1], v3=N[2], v4=N[3];
        if (v2*2<=v1+v3 & v3*2<=v2+v4)
        {
            V.push_back("YES");
            break;
        }
        for (lg i=0, I=0; i!=3 & I!=1; i++)
        {
            if (i==3)
            {
                i=0;
                I++;
            }
            if (i==2)
            {
                swap(N[2], N[1]);
            }
            else
            {
                swap(N[i], N[i+1]);
            }
            lg v1=N[0], v2=N[1], v3=N[2], v4=N[3];
            if (v2*2<=v1+v3 & v3*2<=v2+v4)
            {
                V.push_back("YES");
                break;
            }
        }
        if (V.size()==x)
        {
            V.push_back("NO");
        }
    }
    for (string i:V)
    {
        cout<<i;
        cout<<endl;
    }
}