K
Khách

Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.

26 tháng 6 2023

n = int(input())
a = list(map(int, input().split()))

dp = [a[0]] 

for i in range(1, n):
     left, right = 0, len(dp) - 1
    pos = len(dp)
    while left <= right:
        mid = (left + right) // 2
        if dp[mid] < a[i]:
            left = mid + 1
        else:
            pos = mid
            right = mid - 1
        if pos == len(dp):
        dp.append(a[i])
      else:
        dp[pos] = a[i]

print(len(dp))