#include using namespace std; const int maxn=212345; int T,n,a[maxn],tot; struct node { int l,r,id,dep; node(){} node(int l,int r,int id,int dep):l(l),r(r),id(id),dep(dep){} bool operator<(const node &rhs)const{ if (dep!=rhs.dep) return dep que; vector G[maxn]; vector res; void dfs(int u) { if (G[u].size()) { res.push_back(G[u][0].r); dfs(G[u][0].id); dfs(G[u][1].id); } } int main() { scanf("%d",&T); while (T--) { res.clear(); scanf("%d",&n); for (int i=1;i<=n+n;++i) G[i].clear(); while (!que.empty()) que.pop(); for (int i=1;i<=n;++i) { scanf("%d",&a[i]); que.push(node(i,i,i,a[i])); } tot=n; bool flag=true; while ((int)que.size()>1) { node t1=que.top(); que.pop(); node t2=que.top(); que.pop(); if (t1.l