#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void solve() {
int n;
cin >> n;
vector<long long> h(n);
int M = 0;
for (int i = 0; i < n; ++i) {
cin >> h[i];
if (h[i] > h[M]) {
M = i;
}
}
vector<long long> B(n - 1);
for (int i = 0; i < n - 1; ++i) {
B[i] = h[(M + 1 + i) % n];
}
vector<long long> fL(n), fR(n);
vector<pair<long long, long long>> st;
long long current_sum = 0;
fL[0] = 0;
for (int i = 1; i < n; ++i) {
long long x = B[i - 1];
long long cnt = 1;
while (!st.empty() && st.back().first <= x) {
current_sum -= st.back().first * st.back().second;
cnt += st.back().second;
st.pop_back();
}
st.push_back({x, cnt});
current_sum += x * cnt;
fL[i] = current_sum;
}
st.clear();
current_sum = 0;
fR[n - 1] = 0;
for (int i = n - 2; i >= 0; --i) {
long long x = B[i];
long long cnt = 1;
while (!st.empty() && st.back().first <= x) {
current_sum -= st.back().first * st.back().second;
cnt += st.back().second;
st.pop_back();
}
st.push_back({x, cnt});
current_sum += x * cnt;
fR[i] = current_sum;
}
vector<long long> ans(n);
for (int i = 0; i < n; ++i) {
ans[(M + 1 + i) % n] = fL[i] + fR[i];
}
for (int i = 0; i < n; ++i) {
cout << ans[i] << (i == n - 1 ? "" : " ");
}
cout << "\n";
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int t;
if (cin >> t) {
while (t--) {
solve();
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgc29sdmUoKSB7CiAgICBpbnQgbjsKICAgIGNpbiA+PiBuOwogICAgdmVjdG9yPGxvbmcgbG9uZz4gaChuKTsKICAgIGludCBNID0gMDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKSB7CiAgICAgICAgY2luID4+IGhbaV07CiAgICAgICAgaWYgKGhbaV0gPiBoW01dKSB7CiAgICAgICAgICAgIE0gPSBpOwogICAgICAgIH0KICAgIH0KCiAgICB2ZWN0b3I8bG9uZyBsb25nPiBCKG4gLSAxKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbiAtIDE7ICsraSkgewogICAgICAgIEJbaV0gPSBoWyhNICsgMSArIGkpICUgbl07CiAgICB9CgogICAgdmVjdG9yPGxvbmcgbG9uZz4gZkwobiksIGZSKG4pOwogICAgdmVjdG9yPHBhaXI8bG9uZyBsb25nLCBsb25nIGxvbmc+PiBzdDsKICAgIGxvbmcgbG9uZyBjdXJyZW50X3N1bSA9IDA7CgogICAgZkxbMF0gPSAwOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPCBuOyArK2kpIHsKICAgICAgICBsb25nIGxvbmcgeCA9IEJbaSAtIDFdOwogICAgICAgIGxvbmcgbG9uZyBjbnQgPSAxOwogICAgICAgIHdoaWxlICghc3QuZW1wdHkoKSAmJiBzdC5iYWNrKCkuZmlyc3QgPD0geCkgewogICAgICAgICAgICBjdXJyZW50X3N1bSAtPSBzdC5iYWNrKCkuZmlyc3QgKiBzdC5iYWNrKCkuc2Vjb25kOwogICAgICAgICAgICBjbnQgKz0gc3QuYmFjaygpLnNlY29uZDsKICAgICAgICAgICAgc3QucG9wX2JhY2soKTsKICAgICAgICB9CiAgICAgICAgc3QucHVzaF9iYWNrKHt4LCBjbnR9KTsKICAgICAgICBjdXJyZW50X3N1bSArPSB4ICogY250OwogICAgICAgIGZMW2ldID0gY3VycmVudF9zdW07CiAgICB9CgogICAgc3QuY2xlYXIoKTsKICAgIGN1cnJlbnRfc3VtID0gMDsKICAgIGZSW24gLSAxXSA9IDA7CiAgICBmb3IgKGludCBpID0gbiAtIDI7IGkgPj0gMDsgLS1pKSB7CiAgICAgICAgbG9uZyBsb25nIHggPSBCW2ldOwogICAgICAgIGxvbmcgbG9uZyBjbnQgPSAxOwogICAgICAgIHdoaWxlICghc3QuZW1wdHkoKSAmJiBzdC5iYWNrKCkuZmlyc3QgPD0geCkgewogICAgICAgICAgICBjdXJyZW50X3N1bSAtPSBzdC5iYWNrKCkuZmlyc3QgKiBzdC5iYWNrKCkuc2Vjb25kOwogICAgICAgICAgICBjbnQgKz0gc3QuYmFjaygpLnNlY29uZDsKICAgICAgICAgICAgc3QucG9wX2JhY2soKTsKICAgICAgICB9CiAgICAgICAgc3QucHVzaF9iYWNrKHt4LCBjbnR9KTsKICAgICAgICBjdXJyZW50X3N1bSArPSB4ICogY250OwogICAgICAgIGZSW2ldID0gY3VycmVudF9zdW07CiAgICB9CgogICAgdmVjdG9yPGxvbmcgbG9uZz4gYW5zKG4pOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICBhbnNbKE0gKyAxICsgaSkgJSBuXSA9IGZMW2ldICsgZlJbaV07CiAgICB9CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICBjb3V0IDw8IGFuc1tpXSA8PCAoaSA9PSBuIC0gMSA/ICIiIDogIiAiKTsKICAgIH0KICAgIGNvdXQgPDwgIlxuIjsKfQoKaW50IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CiAgICBpbnQgdDsKICAgIGlmIChjaW4gPj4gdCkgewogICAgICAgIHdoaWxlICh0LS0pIHsKICAgICAgICAgICAgc29sdmUoKTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMDsKfQ==