#include #include #include #define N 131072 using namespace std; typedef long long ll; ll a[N]; int ans[N]; int size[N<<2]; #define lson l,mid,no<<1 #define rson mid+1,r,no<<1|1 void Pushup(int no) { size[no]=size[no<<1]+size[no<<1|1]; } void Build(int l,int r,int no) { if(l==r) size[no]=1; else { int mid=l+r>>1; Build(lson); Build(rson); Pushup(no); } } void update(int l,int r,int no,int k) { if(l==r) size[no]=0; else { int mid=l+r>>1; if(k<=mid) update(lson,k); else update(rson,k); Pushup(no); } } int query(int l,int r,int no,int k) { if(l==r) return l; else { int mid=l+r>>1; if(size[no<<1|1]>=k) return query(rson,k); else return query(lson,k-size[no<<1|1]); } } int main() { int c,T,n,m,i,j,k; scanf("%d",&T); for(c=1;c<=T;c++) { scanf("%d",&n); for(i=1;i<=n;i++) scanf("%I64d",a+i); Build(1,n,1); for(i=n;i>=1;i--) { ans[i]=query(1,n,1,a[i]-a[i-1]+1); update(1,n,1,ans[i]); } for(i=1;i