#include <bits/stdc++.h>
using namespace std;
struct debugger {
  template <typename T>
  debugger& operator,(const T& v) {
    cerr << v << " ";
    return *this;
  }
} dbg;
int main() {
  int t;
  scanf("%d", &t);
  while (t--) {
    long long n;
    scanf("%lld", &n);
    long long a[n + 5];
    for (long long i = 1; i <= n; i++) scanf("%lld", &a[i]);
    vector<long long> vec;
    for (long long i = 1; i <= n; i++) {
      long long cnt = 0;
      long long j = i;
      while (j <= n && a[j] == a[i]) cnt++, j++;
      vec.push_back(cnt);
      i = j - 1;
    }
    long long pos = 0;
    long long sum = 0;
    for (long long i = 0; i < (int)vec.size(); i++) {
      sum += vec[i];
      if (sum > (n / 2ll)) {
        pos = i - 1;
        sum -= vec[i];
        break;
      }
    }
    if (pos < 2)
      printf("0 0 0\n");
    else {
      long long G = vec[0];
      long long sum2 = 0;
      long long S = 0, B;
      for (long long i = 1; i <= pos; i++) {
        sum2 += vec[i];
        if (sum2 > G) {
          S = sum2;
          break;
        }
      }
      if (!S)
        printf("0 0 0\n");
      else if (sum - G - S > G)
        printf("%lld %lld %lld\n", G, S, sum - G - S);
    }
  }
  return 0;
}
