#include <bits/stdc++.h>
using namespace std;
void err(istream_iterator<string> it) {}
template <typename T, typename... Args>
void err(istream_iterator<string> it, T a, Args... args) {
  cerr << *it << " = " << a << endl;
  err(++it, args...);
}
using ll = long long;
const int N = 4e5 + 100;
int n, a[N];
vector<int> v;
int main() {
  int T;
  scanf("%d", &T);
  while (T--) {
    scanf("%d", &n);
    for (int i = 0; i < n; i++) scanf("%d", &a[i]);
    sort(a, a + n, greater<int>());
    v.clear();
    for (int i = 0; i < n; i++) {
      int j = i;
      while (a[j + 1] == a[i]) j++;
      v.push_back(j - i + 1);
      i = j;
    }
    int g = v[0];
    if (g >= n / 2) {
      puts("0 0 0");
      continue;
    }
    int j = 1, s = 0;
    while (j < n && s <= g) {
      s += v[j];
      j++;
    }
    if (g + s >= n / 2) {
      puts("0 0 0");
      continue;
    }
    int b = 0;
    while (j < n && b <= g) {
      b += v[j];
      j++;
    }
    if (g + s + b > n / 2) {
      puts("0 0 0");
      continue;
    }
    while (j < n && g + s + b + v[j] <= n / 2) b += v[j++];
    printf("%d %d %d\n", g, s, b);
  }
  return 0;
}
