
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;


public class c {

	public static void main(String[] args) throws Exception {
		in = new BufferedReader(new InputStreamReader(System.in));
		out = new PrintWriter(System.out);
		sc = new FastScanner(in);
		int t = sc.nextInt();
		while (t-- > 0) {
			int n = sc.nextInt();
			int[] arr = new int[n];
			for(int i = 0 ;i < n;i++)arr[i]=sc.nextInt();
			
			int max = n /2 -1;
			int g  = 0 , s=0 , b = 0;
			if(max>=0) {
				int val = arr[max];
				int start = max;
				while(max>=0 && arr[max]==val) {
					max--; 
				}
				b = start - max;
			}
			if(max>=0) {
				int val = arr[max];
				int start = max;
				while(max>=0 && arr[max]==val) {
					max--; 
				}
				s = start - max;
			}
			
			if(max>=0) {
			
				g = max+1;
			}
			
			
			if(g==0) {
				out.print( "0 0 0");
			}else {
				out.print(g+" "+s+" "+b);
			}
			out.println();
		}
		out.flush();
	}

	static BufferedReader in;
	static FastScanner sc;
	static PrintWriter out;

	static class FastScanner {
		BufferedReader in;
		StringTokenizer st;

		public FastScanner(BufferedReader in) {
			this.in = in;
		}

		public String nextToken() throws Exception {
			while (st == null || !st.hasMoreTokens()) {
				st = new StringTokenizer(in.readLine());
			}
			return st.nextToken();
		}

		public int nextInt() throws Exception {
			return Integer.parseInt(nextToken());
		}

		public long nextLong() throws Exception {
			return Long.parseLong(nextToken());
		}

		public double nextDouble() throws Exception {
			return Double.parseDouble(nextToken());
		}
	}
}

