#52. Dãy con chia hết (Mã bài: SUBSEQ)

Bộ nhớ: 256 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Cho dãy số nguyên a gồm n phần tử a_1, a_2, \dots, a_n . Hãy tìm một dãy con dài nhất gồm các phần tử liên tiếp của dãy số a thỏa mãn: Tồn tại một số nguyên dương d > 1 sao cho mọi phần tử trong dãy con đó đều chia hết cho d .

Dữ liệu:

  • Dòng đầu: số nguyên T — số test ( T \le 10^4 ).
  • Với mỗi test:
    • Dòng 1: số nguyên n ( n \le 10^6 ).
    • Dòng 2: n số nguyên a_i ( a_i \le 10^6 ).

Kết quả: Ghi ra T dòng, mỗi dòng là độ dài dãy con dài nhất tìm được. Nếu không tồn tại, in ra 0.

Ví dụ:

Dữ liệu:

3
8
2 6 12 15 27 1 81 5
6
2 4 6 8 10 12
12
4 5 7 9 4 5 7 9 4 5 7 9

Kết quả:

4
6
1

Giới hạn: T\times n \le 10^6 .

  • Subtask #1: 20% số điểm với n \le 100, T \le 10 .
  • Subtask #2: 30% số điểm với n \le 10^3, T \le 100 .
  • Subtask #3: 50% số điểm còn lại không có ràng buộc thêm.