#include <bits/stdc++.h>
const int maxn = 1e6 + 9;
int Read() {
  int x(0), f(1);
  char c = getchar();
  while (c < '0' || c > '9') {
    if (c == '-') f = -1;
    c = getchar();
  }
  while (c >= '0' && c <= '9') {
    x = (x << 3) + (x << 1) + c - '0';
    c = getchar();
  }
  return x * f;
}
int T, n;
int a[maxn], pos[maxn], S[maxn];
int main() {
  T = Read();
  while (T--) {
    n = Read();
    a[0] = -1;
    int tot(0);
    for (int i = 1; i <= n; ++i) {
      a[i] = Read();
      if (a[i] != a[i - 1]) {
        pos[++tot] = 1;
      } else
        pos[tot]++;
    }
    for (int i = 1; i <= tot; ++i) {
      S[i] = S[i - 1] + pos[i];
    }
    int up(n / 2), sum(0), k(0);
    for (int i = 1; i <= tot; ++i) {
      if (sum <= up && sum + pos[i] > up) {
        k = i - 1;
        break;
      }
      sum += pos[i];
    }
    if (k >= 3) {
      int f(0);
      for (int i = 2; i < k; ++i) {
        if (S[i] - S[1] > S[1] && S[k] - S[i] > S[1]) {
          printf("%d %d %d\n", S[1], S[i] - S[1], S[k] - S[i]);
          f = 1;
          break;
        }
      }
      if (!f) puts("0 0 0");
    } else {
      puts("0 0 0");
    }
  }
  return 0;
}
