#include<stdio.h> #include<iostream> #include<string> #include<algorithm> #include<cstring> #include<cmath> using namespace std; int main() { int n; cin >> n; int a[131]; int dp[131]; memset(dp, 0, sizeof(dp)); int dp1[131]; memset(dp1, 0, sizeof(dp1)); for (int i = 0;i < n;i++) { cin >> a[i]; } for (int i = 0;i < n;i++) { dp[i] = 1; for (int j = 0;j < i;j++) { if (a[j] < a[i]) { dp[i] = max(dp[i], dp[j] + 1); } } } for (int i = n-1;i >= 0;i--) { dp1[i] = 1; for (int j = n-1;j > i;j--) { if (a[j] < a[i]) { dp1[i] = max(dp1[i], dp1[j] + 1); } } } int max1 = 0; for (int i = 0;i < n;i++) { if (dp[i] + dp1[i] - 1 > max1) max1 = dp[i] + dp1[i] - 1; } cout << n - max1; } |
Double click to view unformatted code.