想问一下为什么只有三个点过不去还都是只差1
#include<iostream>
using namespace std;
int a[100007]= {0},path[27]= {0},f1[100007]= {0},f2[100007]= {0};
int main()
{
int n=-1,maxx=0,minn=0,flag1=0,flag2=0,x;
while(cin>>x)a[++n]=x;
f1[0]=1;
f2[0]=1;
//cout<<n;
for(int i=1; i<n; i++) {
maxx=0;
minn=0;
for(int j=0; j<i; j++) {
if(f1[j]>maxx&&a[i]<=a[j]) {
maxx=f1[j];
//if(i==1)
//cout<<flag1<<"\t";
//cout<<"?????"<<endl;
}
//maxx=j;
if(f2[j]>minn&&a[i]>a[j]) {
minn=f2[j];
}
}
f1[i]=maxx+1;
f2[i]=minn+1;
}
int ans1=0,ans2=0;
// for(int i=0; i<n; i++) {
// cout<<a[i]<<":"<<f1[i]<<"\t";
// }
// cout<<endl;
// for(int i=0; i<n; i++) {
// cout<<f2[i]<<" ";
// }
// cout<<endl;
for(int i=0; i<n; i++) {
if(f1[i]>ans1)
ans1=f1[i];
if(f2[i]>ans2)
ans2=f2[i];
}
cout<<ans1<<endl<<ans2;
return 0;
}