#include #include const int MAXN=123456; int arr[MAXN],ans[MAXN],len,out[MAXN]; int binary_search(int i) { int left,right,mid; left=0,right=len; while(left=arr[i]) right=mid; else left=mid+1; } return left; } int main() { int T,p,i; scanf("%d",&T); while(T--) { scanf("%d",&p); for(i=1; i<=p; ++i) scanf("%d",&arr[i]); ans[1]=arr[1]; len=out[1]=1; for(i=2; i<=p; ++i) { if(arr[i]>ans[len]) { ans[++len]=arr[i]; out[i]=len; } else { int pos=binary_search(i); ans[pos]=arr[i]; out[i]=pos; } } for(int i=1;i