代码如下:
#include<iostream>
#include<cstdio>
using namespace std;
int m,maxn,n,a[1000005][5];
int ans1,k,s;bool p;
int main(){
int x;
while(scanf("%d",&m)) a[++n][1]=m,a[n][2]=1;
x=n;
int tot=0;
while(x>0){
for(int i=2;i<=n;i++){
maxn=0;
if(!a[i][4]{
for(int j=1;j<i;j++){
if(a[j][1]>a[i][1]&&a[j][2]>maxn&&!a[j][4])
maxn=a[j][2],a[i][3]=j;
a[i][2]=maxn+1;
}
}
}
ans1=0,k,s=0;
for(int i=1; i<=n; i++)
if(a[i][2]>ans1) ans1=a[i][2],k=i;
if(!p){
p=1;
cout<<ans1<<endl;
}
while(k>0){
a[k][4]=1;
k=a[k][3];
s++;
}
x=x-s,tot++;
}
cout<<tot;
return 0;
}