n = int(input())
arr = str(input())
arr = arr.split(' ')
arr = [int(x) for x in arr]
def fectch_up_list(arr):
    dp = [ 1 for i in range(n)] # 最少就是自身了吧  
    sa = [ i for i in sorted(enumerate(arr), key = lambda x:x[1])]
    # print(sa)
    # i 表示采用i时,最多具有多少数量
    for i in range(0, n):
        
        id = sa[i][0]
        # if i > 0 and sa[i][1] == sa[i-1][1] and id > sa[i-1][0]:
        #     dp[id] = dp[sa[i-1][0]]
        #     continue
        # j 表示到当前j为止,最多具有多少数量
        for j in range(0, i):
            # if 
            idj = sa[j][0]
            if idj < id and sa[i][1] > sa[j][1]:
                dp[id] = max(dp[id], dp[idj]+1)
    return dp
dp1 = fectch_up_list(arr)
dp2 = fectch_up_list(list(reversed(arr)))
dp2 = list(reversed(dp2))
dp = []
for i in range(n):
    dp.append(dp1[i] + dp2[i])
# print(dp1, dp2, dp)
mx = max(dp[1:-1]) -1
ans = n - mx
print(ans)
# for i in range(1, n-1):
#     if dp[i] == mx:
#         if arr[i] > 
双向队列

 京公网安备 11010502036488号
京公网安备 11010502036488号