题解 | #合唱队#
合唱队
https://www.nowcoder.com/practice/6d9d69e3898f45169a441632b325c7b4
a = int(input()) b = list(map(int,input().split(" "))) import bisect result2 = [] def uplist(a,len1): result1 = [1]*len1 pftsub = [a[0]] for i in range(1,len1): if a[i] > pftsub[-1]: pftsub.append(a[i]) result1[i] = result1[i-1]+1 else: pftsub[bisect.bisect_left(pftsub,a[i])] = a[i] result1[i] = result1[i-1] return result1 list1 = uplist(b,a) list2 = uplist(b[::-1],a)[::-1] result2=[list1[i]+list2[i] - 1 for i in range(a) ] print(a-max(result2))