#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;
}