#include <bits/stdc++.h>
using namespace std;
string to_string(const string& s) { return '"' + s + '"'; }
string to_string(const bool b) { return (b ? "true" : "false"); }
string to_string(const char* s) { return to_string((string)s); }
string to_string(const char c) {
  string s = "'";
  s += c;
  s += "'";
  return s;
}
template <class T, class U>
string to_string(const pair<T, U>& p) {
  string s = "(";
  s += to_string(p.first);
  s += ", ";
  s += to_string(p.second);
  s += ")";
  return s;
}
template <class T>
string to_string(const T& a) {
  bool first = true;
  string s = "{";
  for (const auto& x : a) {
    if (!first) {
      s += ", ";
    }
    first = false;
    s += to_string(x);
  }
  s += "}";
  return s;
}
void debug_out() { cerr << '\n'; }
template <class Head, class... Tail>
void debug_out(Head head, Tail... tail) {
  cerr << ' ' << to_string(head);
  debug_out(tail...);
}
using ll = long long;
using ld = long double;
const int inf = 1e9 + 100;
const ll inf64 = 7e18l;
void solve() {
  int n;
  cin >> n;
  map<int, int> mp;
  for (int i = 0; i < n; ++i) {
    int t;
    cin >> t;
    ++mp[t];
  }
  if ((int)mp.size() < 3) {
    cout << "0 0 0\n";
    return;
  }
  auto it = mp.end();
  int gold = (*(--it)).second;
  int silver = 0;
  while (silver <= gold) {
    if (it == mp.begin()) {
      cout << "0 0 0\n";
      return;
    }
    silver += (*(--it)).second;
  }
  int bronze = 0;
  while (bronze <= gold) {
    if (it == mp.begin()) {
      cout << "0 0 0\n";
      return;
    }
    bronze += (*(--it)).second;
  }
  int sum = gold + silver + bronze;
  while (sum <= n / 2) {
    if (it == mp.begin()) {
      break;
    }
    int val = (*(--it)).second;
    if (sum + val > n / 2) {
      break;
    }
    bronze += val;
    sum += min(n / 2 - sum, val);
    ;
  }
  if (sum > n / 2) {
    cout << "0 0 0\n";
    return;
  } else {
    cout << gold << ' ' << silver << ' ' << bronze << '\n';
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout << fixed << setprecision(20);
  int t;
  cin >> t;
  while (t--) {
    solve();
  }
  return 0;
}
