Đ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 chisodaytangnho

Chỉ số dãy con tăng nhỏ nhất

Dễ Quy hoạch động dãy con tăng

  • 100 Điểm
  • 1.0s Thời gian
  • 256M Bộ nhớ
  • 0% Tỉ lệ AC
  • 0 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 5000\)
  • \(|A_i| \le 10^9\)

Sample Input

7
4 -2 7 7 0 9 3

Sample Output

3
1 3 6

Explanation

Độ dài lớn nhất là \(3\). Các dãy chỉ số tối ưu gồm \((1,3,6)\), \((1,4,6)\), \((2,3,6)\), \((2,4,6)\), \((2,5,6)\), ...; dãy \((1,3,6)\) nhỏ nhất theo thứ tự từ điển.

Bình luận

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