#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5;
int main() {
  ios_base ::sync_with_stdio(false);
  cin.tie(0);
  int t;
  cin >> t;
  while (t--) {
    int n;
    cin >> n;
    vector<int> v(n);
    for (int i = 0; i < n; ++i) cin >> v[i];
    vector<int> cnt;
    int c = 0;
    int prev = v[0];
    for (int i = 0; i < n; ++i) {
      if (v[i] == prev) {
        c++;
        if (i == n - 1) cnt.push_back(c);
      } else {
        cnt.push_back(c);
        prev = v[i];
        c = 1;
        if (i == n - 1) {
          cnt.push_back(c);
        }
      }
    }
    vector<int> pref(cnt.size());
    pref[0] = cnt[0];
    for (int i = 1; i < cnt.size(); ++i) {
      pref[i] = pref[i - 1] + cnt[i];
    }
    int ans = -1, gold = 0, serebro = 0, bronze = 0;
    for (int i = 0; i < cnt.size(); ++i) {
      int g = pref[i];
      int l = i, r = cnt.size() + 1;
      while (r - l > 1) {
        int m = (r + l) / 2;
        if (pref[m] - pref[i] > g && pref[m] <= n / 2) {
          if (pref[m] > ans) {
            int sum = 0, j = i + 1;
            while (sum <= g) {
              sum += cnt[j];
              j++;
            }
            if (pref[m] - g - sum <= g) {
              l = m;
              continue;
            }
            ans = pref[m];
            gold = g;
            serebro = sum;
            bronze = pref[m] - g - sum;
          }
          l = m;
        } else {
          r = m;
        }
      }
    }
    cout << gold << " " << serebro << " " << bronze << '\n';
  }
  return 0;
}
