Điều hướng chính

Nhắn tin NQ Coding

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 daychiahetlon

Dãy con chia hết cỡ lớn

Dễ Quy hoạch độngSố học

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

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

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