#include <bits/stdc++.h>
using namespace std;
long long int M = 998244353;
long long int inf = 1e18;
long long getpow(long long base, long long pow) {
  long long res = 1;
  base = base % M;
  while (pow > 0) {
    if (pow % 2 != 0) res = res * base;
    res = res % M;
    base = base * base;
    base = base % M;
    pow /= 2;
  }
  return res;
}
void swp(long long int *x, long long int *y) {
  long long int t = *x;
  *x = *y;
  *y = t;
}
void init(vector<long long int> &v, long long int n) {
  for (long long int i = 0; i < n; i++) {
    cin >> v[i];
  }
}
void print(vector<long long int> &v) {
  for (long long int i = 0; i < v.size(); i++) cout << v[i] << " ";
  cout << endl;
}
void initg(vector<vector<long long int> > &v, long long int m) {
  long long int i, x, y;
  for (i = 0; i < m; i++) {
    cin >> x >> y;
    v[x].push_back(y);
    v[y].push_back(x);
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long t1, n, cnt, n1, n2, i, tot;
  cin >> t1;
  while (t1--) {
    cin >> n;
    vector<long long> v(n);
    init(v, n);
    if (n < 6) {
      cout << 0 << " " << 0 << " " << 0 << endl;
      continue;
    }
    vector<long long> v1;
    cnt = 1;
    n1 = n / 2;
    for (i = 0; i < n1 - 1; i++) {
      if (v[i] == v[i + 1])
        cnt++;
      else {
        v1.push_back(cnt);
        cnt = 1;
      }
    }
    if (v[n1 - 1] != v[n1]) v1.push_back(cnt);
    if (v1.size() < 3) {
      cout << 0 << " " << 0 << " " << 0 << endl;
      continue;
    }
    n2 = v1.size();
    vector<long long> sum(n2);
    sum[1] = v1[1];
    for (i = 2; i < n2; i++) {
      sum[i] = sum[i - 1] + v1[i];
    }
    bool ans = false;
    tot = sum[n2 - 1];
    for (i = 1; i < n2; i++) {
      if (sum[i] > v1[0] && (tot - sum[i]) > v1[0]) {
        ans = true;
        cout << v1[0] << " " << sum[i] << " " << tot - sum[i] << endl;
        break;
      }
    }
    if (!ans) cout << 0 << " " << 0 << " " << 0 << endl;
  }
}
