##我的也只有80.很迷
```cpp
#include<bits/stdc++.h>
using namespace std;
int A[1000000];
int Q[1000000];
int F[1000000];
int B[1000000];
int find(int l,int r,int x)
{
int mid=(l+r)>>1;
while(l<r)
{
if(Q[mid]>x)r=mid;
else l=mid+1;
mid=(l+r)>>1;
}
return mid;
}
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&A[i]);
Q[1]=A[1];
F[1]=1;
B[n]=1;
int p=1;
for(int i=2;i<=n;i++)
{
if(Q[p]<A[i])
Q[++p]=A[i];
else
Q[find(1,p,A[i])]=A[i];
F[i]=p;
}
Q[1]=A[n];
p=1;
for(int i=n-1;i>=1;i--)
{
if(Q[p]<A[i])
Q[++p]=A[i];
else
Q[find(1,p,A[i])]=A[i];
B[i]=p;
}
int ans=0;
for(int i=1;i<=n;i++)
ans=max(ans,B[i]+F[i]-1);
ans=n-ans;
cout<<ans;
return 0;
}
```
by wch1090441672 @ 2017-11-08 20:38:19