#include #define N 200005 using namespace std; long long a[N]; int size[N],ans[N],n,i,T,big; void build(int k,int l,int r){ size[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); } int Query(int k,int l,int r){ if (l==r) return l;int mid=(l+r)>>1; if (size[k<<1|1]>=big) return Query(k<<1|1,mid+1,r); return big-=size[k<<1|1],Query(k<<1,l,mid); } void Delete(int k,int l,int r,int pos){ if (l==r) {size[k]=0;return;}int mid=(l+r)>>1; if (pos<=mid) Delete(k<<1,l,mid,pos); else Delete(k<<1|1,mid+1,r,pos); size[k]=size[k<<1]+size[k<<1|1]; } int main(){ scanf("%d",&T); while (T--){ scanf("%d",&n); for (i=1;i<=n;i++) scanf("%I64d",&a[i]); for (i=n;i;i--) a[i]-=a[i-1]; build(1,1,n); for (i=n;i;i--) big=a[i]+1,Delete(1,1,n,ans[i]=Query(1,1,n)); for (i=1;i