View Code of Problem 4064

#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.


Back to problem 4064