

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class C {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int t = Integer.parseInt(br.readLine());
		
		while(t>0) {
			int n = Integer.parseInt(br.readLine());
			String[] parts = br.readLine().split(" ");
			int[] medals = new int[3];
			int currentMedal = 0;
			int total = 0;
			int prev = Integer.parseInt(parts[0]);
			int i;
			for (i = 0; i < n && currentMedal<3; i++) {
				int value = Integer.parseInt(parts[i]);
				if(prev!=value) {
					if(currentMedal==2 && medals[0]>=medals[1]) {
						medals[1] += medals[2];
						medals[2] = 0;
					}else {
						currentMedal++;
					}
				}
				
				if(currentMedal<3) {
					medals[currentMedal]++;
					total++;
				}
				prev = value;
			}
			
			if(currentMedal<3 || total>n/2) {
				bw.write("0 0 0\n");
			}else {
				//bw.write("==>"+medals[0]+" "+medals[1]+" "+medals[2]+" __ "+i+" "+parts[i]+" "+parts[i-1]+" "+parts[i-2]+" "+"\n");
				
				i = i-1;
				currentMedal = 2;
				prev = Integer.parseInt(parts[i]);
				boolean success = true;
				int acum = 0;
				while(i<n & success) {
					int value = Integer.parseInt(parts[i]);
					if(prev!=value) {
						if(total+acum<=n/2) {
							total += acum;
							medals[currentMedal] += acum;
							acum = 0;
							//bw.write("**>"+medals[0]+" "+medals[1]+" "+medals[2]+" __ "+i+" "+parts[i]+" "+parts[i-1]+" "+parts[i-2]+" "+"\n");
						}else {
							success = false;
							acum = 0;
						}
					}
					acum++;
					i++;
					prev = value;
				}
				if(success && total+acum<=n/2) {
					total += acum;
					medals[currentMedal] += acum;
				}
				bw.write(medals[0]+" "+medals[1]+" "+medals[2]+"\n");
			}
			
			t--;
		}
		
		br.close();
		bw.close();
	}

}
