#include <bits/stdc++.h>
using namespace std;
vector<int> values;
vector<int> assigned_depths;
void calculate_depths(int start_idx, int end_idx, int current_depth) {
if (start_idx > end_idx) {
return;
}
int max_val_idx = start_idx;
for (int i = start_idx + 1; i <= end_idx; ++i) {
if (values[i] > values[max_val_idx]) {
max_val_idx = i;
}
}
assigned_depths[max_val_idx] = current_depth;
calculate_depths(start_idx, max_val_idx - 1, current_depth + 1);
calculate_depths(max_val_idx + 1, end_idx, current_depth + 1);
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int test_cases;
cin >> test_cases;
while (test_cases--) {
int array_size;
cin >> array_size;
values.assign(array_size, 0);
assigned_depths.assign(array_size, 0);
for (int i = 0; i < array_size; ++i) {
cin >> values[i];
}
calculate_depths(0, array_size - 1, 0);
for (int i = 0; i < array_size; ++i) {
cout << assigned_depths[i] << (i == array_size - 1 ? "" : " ");
}
cout << endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdmVjdG9yPGludD4gdmFsdWVzOwp2ZWN0b3I8aW50PiBhc3NpZ25lZF9kZXB0aHM7Cgp2b2lkIGNhbGN1bGF0ZV9kZXB0aHMoaW50IHN0YXJ0X2lkeCwgaW50IGVuZF9pZHgsIGludCBjdXJyZW50X2RlcHRoKSB7CiAgICBpZiAoc3RhcnRfaWR4ID4gZW5kX2lkeCkgewogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpbnQgbWF4X3ZhbF9pZHggPSBzdGFydF9pZHg7CiAgICBmb3IgKGludCBpID0gc3RhcnRfaWR4ICsgMTsgaSA8PSBlbmRfaWR4OyArK2kpIHsKICAgICAgICBpZiAodmFsdWVzW2ldID4gdmFsdWVzW21heF92YWxfaWR4XSkgewogICAgICAgICAgICBtYXhfdmFsX2lkeCA9IGk7CiAgICAgICAgfQogICAgfQoKICAgIGFzc2lnbmVkX2RlcHRoc1ttYXhfdmFsX2lkeF0gPSBjdXJyZW50X2RlcHRoOwoKICAgIGNhbGN1bGF0ZV9kZXB0aHMoc3RhcnRfaWR4LCBtYXhfdmFsX2lkeCAtIDEsIGN1cnJlbnRfZGVwdGggKyAxKTsKICAgIGNhbGN1bGF0ZV9kZXB0aHMobWF4X3ZhbF9pZHggKyAxLCBlbmRfaWR4LCBjdXJyZW50X2RlcHRoICsgMSk7Cn0KCmludCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwoKICAgIGludCB0ZXN0X2Nhc2VzOwogICAgY2luID4+IHRlc3RfY2FzZXM7CiAgICB3aGlsZSAodGVzdF9jYXNlcy0tKSB7CiAgICAgICAgaW50IGFycmF5X3NpemU7CiAgICAgICAgY2luID4+IGFycmF5X3NpemU7CgogICAgICAgIHZhbHVlcy5hc3NpZ24oYXJyYXlfc2l6ZSwgMCk7CiAgICAgICAgYXNzaWduZWRfZGVwdGhzLmFzc2lnbihhcnJheV9zaXplLCAwKTsKCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnJheV9zaXplOyArK2kpIHsKICAgICAgICAgICAgY2luID4+IHZhbHVlc1tpXTsKICAgICAgICB9CgogICAgICAgIGNhbGN1bGF0ZV9kZXB0aHMoMCwgYXJyYXlfc2l6ZSAtIDEsIDApOwoKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGFycmF5X3NpemU7ICsraSkgewogICAgICAgICAgICBjb3V0IDw8IGFzc2lnbmVkX2RlcHRoc1tpXSA8PCAoaSA9PSBhcnJheV9zaXplIC0gMSA/ICIiIDogIiAiKTsKICAgICAgICB9CiAgICAgICAgY291dCA8PCBlbmRsOwogICAgfQoKICAgIHJldHVybiAwOwp9