import bisect def main(): import sys input = sys.stdin.read().split() n = int(input[0]) A = list(map(int, input[1:n+1])) # 创建包含值和原始索引的列表 with_index = [(A[i], i+1) for i in range(n)] # 索引从1开始 # 按值排序 with_index.sort() # 构建pos数组,记录排序后的元素在原数组中的位置 pos = [idx for (val, idx) in with_index] # 计算最长递增子数组的长度 def length_of_lis(nums): tail = [] for x in nums: idx = bisect.bisect_right(tail, x) if idx == len(tail): tail.append(x) else: tail[idx] = x return len(tail) max_len = length_of_lis(pos) print(n - max_len) if __name__ == "__main__": main()