import java.util.*;
import java.io.*;
public class Q1 
{ 
	public static void main(String args[]) throws Exception 
	{
		Scan scan = new Scan();
		Print print = new Print();
		int T=scan.scanInt();
		loop:
		while(T-- >0)
		{
			int N=scan.scanInt();
			int arr[] = new int[N];
			Map<Integer,Character> medals = new HashMap<Integer,Character>();
			Map<Integer, Integer> map = new HashMap<Integer, Integer>();
			for (int i = 0; i < N; i++) 
			{
				arr[i] = scan.scanInt();
				map.put(arr[i], map.getOrDefault(arr[i],0)+1);
			}
			if(N/2<3 || map.get(arr[0])>=N/2)
			{
				print.println("0 0 0");
				continue loop;
			}
			int min=0;
			boolean flag=true;
			for(int i=(N/2)-1;i>=0;i--)
			{
				if(arr[i]!=arr[i+1])
				{
					flag=false;
					medals.put(arr[i],'b');
					min=Math.max(i,min);
					//System.out.println(min+" "+arr[i]);
				}
			}
			if(flag)
			{
				print.println("0 0 0");
				continue loop;
			}
			int sum=0;
			flag=true;
			for(;min>0;min--)
			{
				sum+=map.get(arr[min]);
				map.put(arr[min],0);
			//	System.out.println(min+" N");
				if(sum>map.get(arr[0]))
				{
					break;
				}
			}
			for(int i=min;i>0;i--)
			{
				if(arr[i]!=arr[min])
				{
					flag=false;
					medals.put(arr[i],'s');
				}
			}
			if(flag)
			{
				print.println("0 0 0");
				continue loop;
			}
			medals.put(arr[0],'g');
			int g=0;
			int s=0;
			int b=0;
			for(int i=N/2;i>=0;i--)
			{
				if(medals.getOrDefault(arr[i],' ')=='b')
				{
					b++;
				}
				else if(medals.getOrDefault(arr[i],' ')=='s')
				{
					s++;
				}
				else if(medals.getOrDefault(arr[i],' ')=='g')
				{
					g++;
				}
			}
			if(g<s && g<b)
			{
				print.println(g+" "+s+" "+b);
			}
			else
			{
				print.println("0 0 0");
			}
			//System.out.println(medals);
		}
		print.close();
	}

	static class Print {
		private final BufferedWriter bw;

		public Print() {
			this.bw = new BufferedWriter(new OutputStreamWriter(System.out));
		}

		public void print(Object object) throws IOException {
			bw.append("" + object);
		}

		public void println(Object object) throws IOException {
			print(object);
			bw.append("\n");
		}

		public void close() throws IOException {
			bw.close();
		}
	}

	static class Scan {
		private byte[] buf = new byte[1024 * 1024 * 4];
		private int index;
		private InputStream in;
		private int total;

		public Scan() {
			in = System.in;
		}

		public int scan() throws IOException {
			if (total < 0)
				throw new InputMismatchException();
			if (index >= total) {
				index = 0;
				total = in.read(buf);
				if (total <= 0)
					return -1;
			}
			return buf[index++];
		}

		public int scanInt() throws IOException {
			int integer = 0;
			int n = scan();
			while (isWhiteSpace(n))
				n = scan();
			int neg = 1;
			if (n == '-') {
				neg = -1;
				n = scan();
			}
			while (!isWhiteSpace(n)) {
				if (n >= '0' && n <= '9') {
					integer *= 10;
					integer += n - '0';
					n = scan();
				} else
					throw new InputMismatchException();
			}
			return neg * integer;
		}

		public double scanDouble() throws IOException {
			double doub = 0;
			int n = scan();
			while (isWhiteSpace(n))
				n = scan();
			int neg = 1;
			if (n == '-') {
				neg = -1;
				n = scan();
			}
			while (!isWhiteSpace(n) && n != '.') {
				if (n >= '0' && n <= '9') {
					doub *= 10;
					doub += n - '0';
					n = scan();
				} else
					throw new InputMismatchException();
			}
			if (n == '.') {
				n = scan();
				double temp = 1;
				while (!isWhiteSpace(n)) {
					if (n >= '0' && n <= '9') {
						temp /= 10;
						doub += (n - '0') * temp;
						n = scan();
					} else
						throw new InputMismatchException();
				}
			}
			return doub * neg;
		}

		public long scanLong() throws IOException {
			long ret = 0;
			long c = scan();
			while (c <= ' ') {
				c = scan();
			}

			boolean neg = (c == '-');
			if (neg) {
				c = scan();
			}

			do {
				ret = ret * 10 + c - '0';
			} while ((c = scan()) >= '0' && c <= '9');

			if (neg) {
				return -ret;
			}
			return ret;
		}

		public String scanString() throws IOException {
			StringBuilder sb = new StringBuilder();
			int n = scan();
			while (isWhiteSpace(n))
				n = scan();
			while (!isWhiteSpace(n)) {
				sb.append((char) n);
				n = scan();
			}
			return sb.toString();
		}

		private boolean isWhiteSpace(int n) {
			if (n == ' ' || n == '\n' || n == '\r' || n == '\t' || n == -1)
				return true;
			return false;
		}
	}
}
