#include #include #include #include #include void swap3(int *a,int *b,int *c); void swap2(int *a,int *b); void Qsort(int x[], int left, int right, int y[], int z[]); void swap(int x[],int i,int j); int max(int a,int b); int main(void){ int n; scanf("%d",&n); int x[n],y[n],z[n]; int a,b,c; int i,j; for(i=0;ix[j] && y[i]>y[j] && z[i]>z[j]){ dp[i]=max(dp[j]+1,dp[i]); } } } int ans=1; for(i=0;i=j) break; swap(x,i,j); swap(y,i,j); swap(z,i,j); i++; j--; } if(left=b){ return a; }else{ return b; } }