import java.io.*;
import java.util.*;
import static java.util.Collections.*;
import static java.lang.Math.*;

@SuppressWarnings("unchecked")
public class A_Beautiful_Regional_Contest {
    public static PrintWriter out;
    public static InputReader in;
    static class Pair{
        public int a,b;
        public Pair(int a, int b){
            this.a=a; this.b=b;
        }
    }
    public static void main(String[] args)throws IOException {
        in = new InputReader(System.in);
        out = new PrintWriter(System.out);
        
        int cases = in.nextInt();
        
        for(int t = 0; t < cases; t++){
            int n = in.nextInt();
            int arr[] = new int[n];
            int ct = 0;
            ArrayList<Pair> list = new ArrayList<Pair>();
            for(int i=0;i<n;i++){
                arr[i] = in.nextInt();
                if(i!=0 && arr[i]!=arr[i-1]){
                    list.add(new Pair(arr[i-1],ct));
                    ct=0;
                }
                ct++;
            }
            list.add(new Pair(arr[n-1],ct));
            Pair gpair = list.get(0);
            int g = gpair.b; int rem = (n/2) - g;
            if(rem<=0){
                out.println("0 0 0");
                continue;
            }
            int i = 1; int s = 0; int tot = n-g;
            boolean don = false;
            for(;i<list.size();i++){
                Pair p =  list.get(i);
                s+=p.b;
                rem-=p.b;
                tot-=p.b;
                if(rem<=0){
                    out.println("0 0 0"); don = true; break;
                }
                if(s>g){
                    i++;
                    break;
                }
            }
            if(don) continue; 
            if(s<=g){
                out.println("0 0 0");
                continue;
            }
            int b = 0;
            for(;i<list.size();i++){
                Pair p =  list.get(i);
                if(p.b>rem)
                    break;
                b+=p.b;
                rem-=p.b;
                tot-=p.b;
            }
            if(b<=g){
                out.println("0 0 0");
                continue;
            }
            out.println(g+" "+s+" "+b);
        }

        out.close();
    }
    static class InputReader {
        public BufferedReader reader;
        public StringTokenizer tokenizer;

        public InputReader(InputStream stream) {
            reader = new BufferedReader(new InputStreamReader(stream), 32768);
            tokenizer = null;
        }

        public String next() {
            while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                try {
                    tokenizer = new StringTokenizer(reader.readLine());
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
            return tokenizer.nextToken();
        }

        public int nextInt() {
            return Integer.parseInt(next());
        }

        public long nextLong() {
            return Long.parseLong(next());
        }

    }

}