一本通 1283:登山
Code:
#include<bits/stdc++.h>
using namespace std;
int n,a[1001],dp[1001],ans,dp2[1001];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
dp[n]=1;
for(int i=n-1;i>=1;i--){
for(int j=i+1;j<=n;j++){
if(dp[j]>dp[i]&&a[i]<a[j]){
dp[i]=dp[j];
}
}
dp[i]++;
}
dp2[n]=1;
for(int i=n-1;i>=1;i--){
for(int j=i+1;j<=n;j++){
if(dp2[j]>dp2[i]&&a[i]>a[j]){
dp2[i]=dp2[j];
}
}
dp2[i]++;
}
for(int i=1;i<=n;i++) ans=max(ans,max(dp[i],dp2[i]));
cout<<ans;
return 0;
}
WA 0 分