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