xxx
2023-01-24 17:53:56
发布于:安徽
39阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int n, a[110], b[110], c[110], maxn=INT_MAX;
int main(){
cin>>n;
for(int i=1;i<=n;i++)
cin>>c[i];
for(int k=1;k<=n;k++){
int ans=0;
for(int i=1;i<=n;i++)
a[i]=c[i];
int b1=0;
for(int i=1;i<=k;i++){
int x=lower_bound(b+1,b+1+b1,a[i])-b;
if(x>=1&&x<=b1)
b[x]=a[i];
else
b[++b1]=a[i];
}
if(a[k]<=b[b1])a[k]=INT_MAX;
ans+=k-b1;b1=0;
reverse(a+k,a+1+n);
for(int i=k;i<=n;i++){
int x=lower_bound(b+1,b+1+b1,a[i])-b;
if(x>=1&&x<=b1)
b[x]=a[i];
else
b[++b1]=a[i];
}
ans+=(n-k+1)-b1;
maxn=min(ans,maxn);
}
cout<<maxn;
return 0;
}
这里空空如也
有帮助,赞一个