Ước chung của đoạn con (C.P.VNOI 2021 LMH R1)

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1500 Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Cho dãy số nguyên \(A = (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 \(A\) thỏa mãn: Tồn tại một số nguyên \(d > 1\) sao cho mọi phần tử trong dãy con đó đều chia hết cho \(d\).

Input

  • Dòng đầu tiên chứa số nguyên dương \(T \le 10^4\) là số lượng bộ test.
  • \(T\) nhóm dòng tiếp theo, mỗi nhóm mô tả một bộ test gồm:
    • Dòng 1 chứa số nguyên dương \(n\) (\(n \le 10^6\)).
    • Dòng 2 chứa \(n\) số nguyên \(a_1, a_2, \dots, a_n\) (\(|a_i| \le 10^6\)).
  • Tổng các giá trị \(n\) trong tất cả các bộ test không vượt quá \(10^6\).

Output

  • Ứng với mỗi bộ test, ghi ra một số nguyên duy nhất trên một dòng là độ dài dãy con dài nhất tìm được. Nếu không tồn tại dãy con nào thỏa mãn điều kiện, in ra số \(0\).

Example

Test 1

Input
4
3
1 2 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
Output
1
4
6
1
Note
  • Test 1: Chọn dãy con chỉ gồm một phần tử \((2)\) hoặc \((3)\).
  • Test 2: Chọn dãy con \((6, 12, 15, 27)\) vì các số này đều chia hết cho \(3\).
  • Test 3: Chọn toàn bộ dãy \(A\) vì các số đều chia hết cho \(2\).
  • Test 4: Chọn dãy con gồm \(1\) phần tử bất kỳ (ví dụ số \(4\) chia hết cho \(2\)).

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.