#include<bits/stdc++.h>
using namespace std;
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
#define all(x) x.begin(),x.end()
#define ll long long int
const int MAX = 1e6+7;
const int MOD = 998244353;
vector<int> solve(vector<int> &a,vector<int> &r,int f)
{
int n = a.size();
unordered_map<int,queue<int> > pq;
stack<pair<int,int> > st;
pq.clear();
for(int i = n-1;i>=0;i--)
{
int jj = i;
if(f) jj = n-1-i;
int val = a[i];
if(pq[val].size() == 0) pq[val].push(i);
else
{
int index = -1;
while(!st.empty() && st.top().first<=val) st.pop();
if(!st.empty()) index = st.top().second;
if(index !=-1)
{
while(pq[val].size() && pq[val].front()>index) pq[val].pop();
}
r[jj]+=pq[val].size();
pq[val].push(i);
}
st.push(make_pair(val,i));
}
return r;
}
int main(int argc, char const *argv[])
{
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int t; cin>>t;
while(t-->0)
{
int n; cin>>n;
vector<int> l(n,0),r(n,0),a(n);
for(int i = 0;i<n;i++) cin>>a[i];
l = solve(a,l,0);
reverse(all(a));
r = solve(a,r,1);
for(int i = 0;i<n;i++) cout<<l[i]+r[i]<<" ";
cout<<'\n';
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI3ByYWdtYSBHQ0MgdGFyZ2V0ICgiYXZ4MiIpCiNwcmFnbWEgR0NDIG9wdGltaXphdGlvbiAoIk8zIikKI3ByYWdtYSBHQ0Mgb3B0aW1pemF0aW9uICgidW5yb2xsLWxvb3BzIikKI2RlZmluZSBhbGwoeCkgeC5iZWdpbigpLHguZW5kKCkKI2RlZmluZSBsbCBsb25nIGxvbmcgaW50CmNvbnN0IGludCBNQVggPSAxZTYrNzsKY29uc3QgaW50IE1PRCA9IDk5ODI0NDM1MzsKCnZlY3RvcjxpbnQ+IHNvbHZlKHZlY3RvcjxpbnQ+ICZhLHZlY3RvcjxpbnQ+ICZyLGludCBmKQp7CiAgaW50IG4gPSBhLnNpemUoKTsKICB1bm9yZGVyZWRfbWFwPGludCxxdWV1ZTxpbnQ+ID4gcHE7CiAgc3RhY2s8cGFpcjxpbnQsaW50PiA+IHN0OwogIHBxLmNsZWFyKCk7CiAgCiAgZm9yKGludCBpID0gbi0xO2k+PTA7aS0tKQogIHsKICAgICAgaW50IGpqID0gaTsKICAgICAgaWYoZikgamogPSBuLTEtaTsKICAgICAgCiAgICAgIGludCB2YWwgPSBhW2ldOwogICAgICBpZihwcVt2YWxdLnNpemUoKSA9PSAwKSBwcVt2YWxdLnB1c2goaSk7CiAgICAgIGVsc2UKICAgICAgewogICAgICAgIGludCBpbmRleCA9IC0xOwogICAgICAgIHdoaWxlKCFzdC5lbXB0eSgpICYmIHN0LnRvcCgpLmZpcnN0PD12YWwpIHN0LnBvcCgpOwogICAgICAgIGlmKCFzdC5lbXB0eSgpKSBpbmRleCA9IHN0LnRvcCgpLnNlY29uZDsJCiAgICAgICAgICAgIAogICAgICAgIGlmKGluZGV4ICE9LTEpICAgIAogICAgICAgIHsKICAgICAgICAgIHdoaWxlKHBxW3ZhbF0uc2l6ZSgpICYmIHBxW3ZhbF0uZnJvbnQoKT5pbmRleCkgcHFbdmFsXS5wb3AoKTsKICAgICAgICB9CiAgICAgICAgcltqal0rPXBxW3ZhbF0uc2l6ZSgpOwogICAgICAgIHBxW3ZhbF0ucHVzaChpKTsgCiAgICAgIH0KICAgICAgc3QucHVzaChtYWtlX3BhaXIodmFsLGkpKTsKICB9CiAgcmV0dXJuIHI7Cn0KCgppbnQgbWFpbihpbnQgYXJnYywgY2hhciBjb25zdCAqYXJndltdKQp7CgogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKCiAgICBpbnQgdDsgY2luPj50OwogICAgd2hpbGUodC0tPjApCiAgICB7CiAgICAgIGludCBuOyBjaW4+Pm47CiAgICAgIHZlY3RvcjxpbnQ+IGwobiwwKSxyKG4sMCksYShuKTsKICAgICAgZm9yKGludCBpID0gMDtpPG47aSsrKSBjaW4+PmFbaV07CgogICAgICBsID0gc29sdmUoYSxsLDApOwogICAgICByZXZlcnNlKGFsbChhKSk7CiAgICAgIHIgPSBzb2x2ZShhLHIsMSk7CiAgICAKICAgICAgZm9yKGludCBpID0gMDtpPG47aSsrKSBjb3V0PDxsW2ldK3JbaV08PCIgIjsKICAgICAgY291dDw8J1xuJzsKCiAgICB9CgogIHJldHVybiAwOwp9