Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập chisodaytanglon

Chỉ số dãy con tăng (N lớn)

Dễ Quy hoạch động dãy con tăngTìm kiếm nhị phân

  • 100 Điểm
  • 1.0s Thời gian
  • 256M Bộ nhớ
  • 100% Tỉ lệ AC
  • 1 Số AC

Cho dãy gồm \(N\) số nguyên \(A_1, A_2, \dots, A_N\). Hãy tìm một dãy con tăng nghiêm ngặt dài nhất, tức là dãy các chỉ số \(i_1 < i_2 < \dots < i_k\) với \(A_{i_1} < A_{i_2} < \dots < A_{i_k}\) và \(k\) lớn nhất.

Để đáp án là duy nhất, trong số các dãy chỉ số tối ưu hãy chọn dãy nhỏ nhất theo thứ tự từ điển (so sánh \(i_1\) trước, nếu bằng nhau thì so sánh \(i_2\), ...).

Input

  • Dòng thứ nhất chứa số nguyên \(N\).
  • Dòng thứ hai chứa \(N\) số nguyên \(A_1, \dots, A_N\).

Output

  • Dòng thứ nhất: độ dài \(k\) của dãy con tăng dài nhất.
  • Dòng thứ hai: \(k\) chỉ số \(i_1, i_2, \dots, i_k\) (đánh số từ \(1\), theo thứ tự tăng dần) của dãy chỉ số nhỏ nhất theo thứ tự từ điển.

Constraints

  • \(1 \le N \le 2 \cdot 10^5\)
  • \(|A_i| \le 10^9\)

Sample Input

7
8 3 -5 3 6 4 10

Sample Output

4
3 4 5 7

Explanation

Độ dài lớn nhất là \(4\). Có hai dãy chỉ số tối ưu là \((3,4,5,7)\) ứng với \(-5,3,6,10\) và \((3,4,6,7)\) ứng với \(-5,3,4,10\); dãy đầu nhỏ hơn theo thứ tự từ điển.

Bình luận

Chưa có bình luận nào.