Dãy \(b_1, \dots, b_m\) được gọi là chia hết hoàn toàn nếu \(b_i \mid b_j\) với mọi \(i < j\); ví dụ \(3, 6, 60\).
Cho dãy \(a_1, a_2, \dots, a_N\) các số nguyên dương. Hãy tìm dãy con chia hết hoàn toàn dài nhất và in ra chỉ số các phần tử được chọn.
Để đáp án duy nhất: nếu có nhiều dãy con dài nhất, in dãy chỉ số có thứ tự từ điển nhỏ nhất (so sánh hai dãy chỉ số tăng dần tại vị trí đầu tiên chúng khác nhau; chỉ số nhỏ hơn thì dãy nhỏ hơn).
Input
- Dòng đầu chứa số nguyên \(N\).
- Dòng thứ hai chứa \(N\) số nguyên \(a_1, \dots, a_N\).
Output
- Dòng đầu: độ dài lớn nhất \(L\).
- Dòng sau: \(L\) chỉ số, tăng dần, cách nhau bởi dấu cách.
Constraints
- \(1 \le N \le 2 \cdot 10^5\)
- \(1 \le a_i \le 2 \cdot 10^5\)
Sample Input 1
8
12 3 6 24 5 10 20 40
Sample Output 1
4
5 6 7 8
Sample Input 2
9
1 2 1 4 3 8 8 6 16
Sample Output 2
6
1 2 4 6 7 9
Explanation
Ở ví dụ 1, các giá trị \(5, 10, 20, 40\) (chỉ số \(5,6,7,8\)) là dãy dài \(4\); dãy \(3, 6, 24\) chỉ dài \(3\). Ở ví dụ 2, các giá trị \(1, 2, 4, 8, 8, 16\) tạo thành dãy dài \(6\).
Bình luận
Đăng nhập để bình luận
Chưa có bình luận nào.