Dãy con tăng dài nhất

Khó

quy hoạch độngtìm kiếm nhị phân5 test · 3 giây

Cho dãy n số nguyên. Tìm độ dài dãy con tăng ngặt dài nhất (các phần tử giữ nguyên thứ tự nhưng không cần liền nhau).

  • DP O(n²) quá chậm với n = 2·10⁵. Cách O(n log n): duy trì mảng tails[k] = giá trị cuối nhỏ nhất của dãy tăng độ dài k + 1, cập nhật bằng tìm kiếm nhị phân.

Dữ liệu vào

Dòng 1: n (1 ≤ n ≤ 2·10⁵).

Dòng 2: n số nguyên (|aᵢ| ≤ 10⁹).

Dữ liệu ra

Độ dài dãy con tăng dài nhất.

Ví dụ

Input

8
10 9 2 5 3 7 101 18

Output

4

Ví dụ 2, 3, 7, 101

Input

4
7 7 7 7

Output

1

Tăng ngặt nên chỉ được 1

Bài tiếp theo: Xâu con chung dài nhất →

Input (stdin)

Output

Bấm “Chạy thử” để xem kết quả với input bên trái.