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

Dãy con chia hết dài nhất

Dễ Quy hoạch động

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

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

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