动规思想,简单
#include <iostream>
using namespace std;
int main(){
int n,a[100],maxa=0,maxb=0,fa[100]={0},fb[100]={0};//定义几个数组
cin>>n;
fa[1]=1;//初始化
fb[1]=1;
for(int i=1;i<=n;i++)
cin>>a[i];//输入
for(int i=2;i<=n;i++){
if(a[i-1]<a[i])//是否满足A条件
maxa=max(maxa,fb[i-1]);
if(a[i-1]>a[i])//是否满足B条件
maxb=max(maxb,fa[i-1]);
fa[i]=max(fa[i],maxa+1);//再比一下
fb[i]=max(fb[i],maxb+1);
}
cout<<max(fa[n],fb[n]); //最后比一下
return 0;
}