#include <bits/stdc++.h>
using namespace std;
template <typename T>
void read(T &x);
template <typename T>
void write(T x);
template <typename T>
void writesp(T x);
template <typename T>
void writeln(T x);
const int N = 4e5 + 5;
int T, n, p[N], cnt[N], h, tmp;
int cnta, cntb, cntc;
int main() {
  read(T);
  while (T--) {
    read(n);
    h = 0;
    for (register int i = 1; i <= n; i++) {
      read(p[i]);
      if (p[i] == p[i - 1])
        ++cnt[h];
      else
        p[++h] = p[i], cnt[h] = 1;
    }
    tmp = n;
    n = h;
    int pos;
    for (register int i = 1, sum = 0; i <= n; i++) {
      sum += cnt[i];
      if (sum + sum > tmp) {
        pos = i - 1;
        break;
      }
    }
    int now = 1, op = 1;
    cnta = cntb = cntc = 0;
    while (now <= pos) {
      if (op == 1) {
        cnta += cnt[now];
        op = 2;
      } else if (op == 2) {
        cntb += cnt[now];
        if (cntb > cnta) op = 3;
      } else if (op == 3) {
        cntc += cnt[now];
      }
      ++now;
    }
    if (cnta >= cntb || cnta >= cntc)
      puts("0 0 0");
    else
      writesp(cnta), writesp(cntb), writeln(cntc);
  }
}
template <typename T>
void read(T &x) {
  x = 0;
  int t = 1;
  char wn = getchar();
  while (wn < '0' || wn > '9') {
    if (wn == '-') t = -1;
    wn = getchar();
  }
  while (wn >= '0' && wn <= '9') {
    x = x * 10 + wn - '0';
    wn = getchar();
  }
  x *= t;
}
template <typename T>
void write(T x) {
  if (x < 0) {
    putchar('-');
    x = -x;
  }
  if (x <= 9) {
    putchar(x + '0');
    return;
  }
  write(x / 10);
  putchar(x % 10 + '0');
}
template <typename T>
void writesp(T x) {
  write(x);
  putchar(' ');
}
template <typename T>
void writeln(T x) {
  write(x);
  putchar('\n');
}
