#include<bits/stdc++.h>
using namespace std;
const int maxn=100005;
int a[maxn],dp[maxn],max1=0,max2=0,cnt=1;
int main(){
while(cin>>a[cnt]) {
cnt++;
}
for(int i=1; i<cnt; i++) {
dp[i]=1;
for(int j=1; j<i; j++) {
if(a[j]>=a[i]) dp[i]=max(dp[i],dp[j]+1);
}
}
for(int i=1; i<=cnt; i++) max1=max(max1,dp[i]);
cout<<max1<<endl;
dp[cnt]=1;
for(int i=cnt;i>=1;i--){
dp[i]=1;
for(int j=i; j<=cnt; j++) {
if(a[i]<a[j]) dp[i]=max(dp[i],dp[j]+1);
}
}
for(int i=1; i<=cnt; i++) max2=max(max2,dp[i]);
cout<<max2<<endl;
return 0;
}
O(nlogn) 做法怎么弄?