#include <algorithm>
#include <array>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <ctime>
#include <deque>
#include <fstream>
#include <iostream>
#include <list>
#include <map>
#include <numeric>
#include <queue>
#include <random>
#include <set>
#include <string>
#include <utility>
#include <vector>

#ifdef MY_MACHINE
std::ifstream fInp("input.txt");
std::ofstream fOut("output.txt");

std::ostream & out = fOut;
std::istream & in = fInp;
#else
std::ostream & out = std::cout;
std::istream & in = std::cin;
#endif


using namespace std;
using I = int64_t;
using UI = uint64_t;
using szt = size_t;
using i8 = int8_t;
using i16 = int16_t;
using i32 = int32_t;
using i64 = int64_t;
using ui8 = uint8_t;
using ui16 = uint16_t;
using ui32 = uint32_t;
using ui64 = uint64_t;
#define int ui32
#define max_int (std::numeric_limits<int>::max())
using uint = ui64;

void rint(int & i) { in >> i; }

template <class... Ts>
void rint(int & i, Ts &... args) { in >> i; rint(args...); }

#define ex(num) { out << num; return 0; }
#define forl(i, fr, to) for (int i = fr; i < to; ++i)
#define forle(i, fr, to) for (int i = fr; i <= to; ++i)
#define dforg(i, fr, to) for (int i = fr; i > to; --i)
#define dforge(i, fr, to) for (int i = fr; i >= to; --i)
#define forids(i, fr, to, c) for (szt i = fr; i < c.size() + (to); ++i)
#define forid(i, fr, c) forids(i, fr, 0u, c)
#define rints(...) int __VA_ARGS__; rint(__VA_ARGS__)

#define N ((int)2e5 + 1)
#define Q ((int)998244353)

i32 main()
{
    ios_base::sync_with_stdio(0); in.tie(0);
    rints(t);
    int p[N], q[N];
    string s;
    while (t--)
    {
        rints(n);
        int k = 0;
        forl(i, 0, n)
        {
            in >> p[i];
            if (i < n / 2)
            {
                if (!i || p[i] != p[i - 1])
                    q[k++] = 1;
                else
                    ++q[k - 1];
            }
        }
        if (n < 6)
        {
            out << "0 0 0\n";
            continue;
        }
        if (p[n / 2 - 1] == p[n / 2]) --k;
        if (k < 3)
        {
            out << "0 0 0\n";
            continue;
        }
        int l = 2;
        for (; l < k && q[1] <= q[0]; q[1] += q[l], ++l);
        if (accumulate(q + l, q + k, 0u) <= q[0])
        {
            out << "0 0 0\n";
            continue;
        }
        out << q[0] << ' ' << q[1] << ' ' << accumulate(q + l, q + k, 0) << '\n';
    }
}
