rt,不知道哪错了
#include <bits/stdc++.h>
using namespace std;
const int N = 105;
int n;
int a[N], f[N], f1[N];
int ans = 114514;
#define gc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<20,stdin),p1==p2)?EOF:*p1++)
char *p1, *p2, buf[1 << 20 + 5];
inline int read() {
int x = 0;
char c = gc();
while (!isdigit(c)) {
c = gc();
}
while (isdigit(c)) {
x = x * 10 + (c ^ 48);
c = gc();
}
return x;
}
int main() {
n = read();
for (int i = 1; i <= n; i ++ ) a[i] = read();
for (int l = 2; l <= n; l ++ ) {
for (int i = 1; i <= n; i ++ ) f[i] = f1[i] = 1;
for (int i = 1; i <= l; i ++ )
for (int j = 1; j <= i; j ++ )
if (a[j] < a[i])
f[i] = max(f[i], f[j] + 1);
for (int i = l + 1; i <= n; i ++ )
for (int j = l + 1; j <= i; j ++ )
if (a[j] > a[i])
f[i] = max(f[i], f[j] + 1);
int res1 = 0, res2 = 0;
for (int i = 1; i <= n; i ++ ) res1 = max(res1, f[i]), res2 = max(res2, f1[i]);
int cnt = n - res1 - res2 + 1;
ans = min(cnt, ans);
}
printf("%d\n", ans);
return 0;
}