/* ID: jsnjhcb1 PROG: b_ LANG: C++ */ /************************************************************************* > File Name: b_.cpp > Author: UCU > Mail: jsnjhcb@icloud.com > Created Time: 六 7/23 19:24:48 2016 ************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int a[100010]; int h[100010]; int ans[100010]; int main(){ int T; scanf("%d",&T); while(T--){ int n; scanf("%d",&n); for(int i=0;i h[top]){ h[top + 1] = a[i]; ans[i] = top + 2; top++; } else{ int l = 0, r = top; int tmp = r; while(l <= r){ int mid = (l + r) / 2; if(h[mid] == a[i]){ tmp = mid; break; } else if(h[mid] > a[i]){ tmp = mid; r = mid - 1; } else{ l = mid + 1; } } h[tmp] = a[i]; ans[i] = tmp + 1; } } for(int i=0;i