样例都过不了,不知道是哪里出现了问题
#include <bits/stdc++.h>
using namespace std;
int n, t[110], g[110], dp1[110], dp2[110], ans = 1e9;
int main() {
ios::sync_with_stdio(false);
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> t[i];
}
memset(g, 0x3f, sizeof(g));
for (int i = 1; i <= n; i++) {
int cur = lower_bound(g + 1, g + n + 1, t[i]) - g;
dp1[i] = cur;
g[cur] = t[i];
}//求最长上升子序列
memset(g, 0x3f, sizeof(g));
for (int i = 1; i <= n / 2; i++) {
swap(t[i], t[n - i + 1]);
}
for (int i = 1; i <= n; i++) {
int cur = lower_bound(g + 1, g + n + 1, t[i]) - g;
dp2[i] = cur;
g[cur] = t[i];
}//求最长下降子序列
for (int i = 1; i <= n; i++) {
int num = dp1[i] + dp2[i] - 1;
ans = min(ans, n - num);
}
cout << ans;
return 0;
}