#include #define N 50050 using namespace std; int now,last,n,nowans; int f[N*4],a[N],ans[N]; void build(int k,int l,int r) { f[k]=r-l+1; if(l==r)return; int mid=(l+r)>>1; build(k<<1,l,mid); build(k<<1|1,mid+1,r); } void ask(int k,int l,int r,int larger) { if(l==r) { nowans=l; return; } int mid=(l+r)>>1; if(larger>=f[k<<1|1])ask(k<<1,l,mid,larger-f[k<<1|1]); else ask(k<<1|1,mid+1,r,larger); } void modify(int k,int l,int r,int ll) { f[k]--; if(l==r)return; int mid=(l+r)>>1; if(mid>=ll)modify(k<<1,l,mid,ll); else modify(k<<1|1,mid+1,r,ll); } int main() { int t; scanf("%d",&t); while(t--) { scanf("%d",&n); build(1,1,n); last=0; for(int i=1;i<=n;i++) { scanf("%d",&now); a[i]=now-last; last=now; } for(int i=n;i;i--) { ask(1,1,n,a[i]); ans[i]=nowans; modify(1,1,n,nowans); } for(int i=1;i