#include<bits/stdc++.h>
#define fi first
#define se second
#define pb push_back
using namespace std;
typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int,int> PII;
typedef pair<LL,LL> PLL;
typedef double LD;
const LD PI = 3.14159265358979323846;
const LD eps = 1e-10;
const int N = 2e5 + 5;
struct RMQ{
    int f1[22][N],f2[22][N];
    inline int highbit(int x) {return 31 - __builtin_clz(x);}
    void init(int *v,int n) {
        for(int i = 0;i < n;i++) f1[0][i] = f2[0][i]= v[i];
        for(int x = 1;x <= highbit(n);x++)
            for(int i = 0;i <= n - (1 << x);i++) {
                f1[x][i] = min(f1[x - 1][i],f1[x - 1][i + (1 << (x - 1))]);
                f2[x][i] = max(f2[x - 1][i],f2[x - 1][i + (1 << (x - 1))]);
            }
    }
    int get_min(int l,int r) {
        assert(l <= r);
        int t = highbit(r - l + 1);
        return min(f1[t][l],f1[t][r - (1 << t) + 1]);
    }
    int get_max(int l,int r) {
        assert(l <= r);
        int t = highbit(r - l + 1);
        return max(f2[t][l],f2[t][r - (1 << t) + 1]);
    }
};
RMQ st;
int n,a[N];
void solve() {
    cin>>n;
    for(int i = 0;i < n;i++) cin>>a[i];
    st.init(a,n);
    for(int x = 1;x <= n - 2;x++) {
        int q1 = st.get_max(0,x - 1);
       // if(x == 6) cerr<<q1<<endl;
        int l = 1,r = n - x - 1;
        while(l <= r) {
            int mid = l + r>> 1;
            int q2 = st.get_min(x,x + mid - 1),q3 = st.get_max(x + mid,n - 1);
           // if(x == 6) cerr<<mid<<' '<<q2<<' '<<q3<<endl;
            if(q2 < q1) r = mid - 1;
            else if(q2 > q1) l = mid + 1;
            else {
                if(q3 == q1) {
                    cout<<"YES\n";
                    cout<<x<<' '<<mid<<' '<<n - x - mid<<'\n';
                    return;
                }
                else if(q3 < q1) r = mid - 1;
                else l = mid + 1;
            }
        }
    }
    cout<<"NO\n";
}

int main() {
    //freopen("1.in","r",stdin);
    ios::sync_with_stdio(false);
    cin.tie(0);
    int T;
    cin>>T;
    while(T--) {
        solve();
    }
    return 0;
}
