描述
输入
输入n个数,对n个数进行排序
输出
输出最少去掉几个数使a[i]<a[k]>a[k+1];
输入
5
154 176 198 168 198
输出
1
#include<iostream>
#include<cstdio>
#include<string.h>
using namespace std;
int main(){
int a[100],n,i,j,pd1[100],pd2[100];
cin >> n;
memset(pd1,0,sizeof(pd1));
memset(pd2,0,sizeof(pd2));
for(i=1;i<=n;i++){
cin >> a[i];
pd1[i]=1;
pd2[i]=1;
}
for(i=1;i<=n;i++){
for(j=i-1;j>=0;j--){
if(a[i]>a[j] && pd1[i]<pd1[j]+1){
pd1[i]=pd1[j]+1;
}
}
}
for(i=n;i>=1;i--){
for(j=i+1;j<=n;j++){
if(a[i]>a[j] && pd2[i]<pd2[j]+1){
pd2[i]=pd2[j]+1;
}
}
}
int max=0;
for(i=1;i<=n;i++){
if(pd1[i]+pd2[i]>max){
max=pd1[i]+pd2[i];
}
}
max--;
printf("%d\n",n-max);
return 0;
}