HackDream Orange 01-F: Tích chia hết

Xem PDF

Nộp bài

Điểm: 100 (thành phần)
Thời gian: 1.0s
Bộ nhớ: 256M
Input: bàn phím
Output: màn hình

Tác giả:
Dạng bài

Hôm nay Rotund được học về tính chia hết. Như thường lệ, cậu bé lại viết ra 1 dãy các số ngẫu nhiên và xem chúng chia hết cho những số nào. Không thoả mãn khi chỉ xét tính chia hết với từng số đơn lẻ, Rotund muốn nâng độ khó lên để luyện tập: với dãy số ngẫu nhiên được viết ra, cậu muốn xét tính chia hết của tích các đoạn con liên tiếp. Vì phép chia rất khó, cậu mới chỉ thành thạo khi thực hiện phép chia cho các số có 1 chữ số, nên Rotund sẽ cố gắng tìm ra các đoạn con liên tiếp có tích chia hết cho toàn bộ các số nguyên dương chỉ có 1 chữ số.

Biết rằng, tích một dãy số là tích của tất cả các phần tử thuộc dãy đó.

Yêu cầu

Đưa ra độ dài của dãy con liên tiếp ngắn nhất có tích thoả mãn nhu cầu của Rotund. Nếu không có dãy con nào thoả mãn, in ra -1.

Input

  • Dòng đầu tiên chứa số nguyên dương ~n~ ~(1≤n≤10^5)~.
  • Dòng thứ hai chứa ~n~ số nguyên dương ~a_i~ ~(1≤a_i≤10^9, 1≤i≤n)~.

Output

Một dòng duy nhất chứa kết quả bài toán.

Sample Input 1

10
18 10 5 15 18 20 17 14 18 10

Sample Output 1

3

Giải thích

Chọn dãy con [14, 18, 10] có độ dài là 3.

Sample Input 2

10
1 2 3 4 5 6 7 8 9 560

Sample Output 2

2

Giải thích

Chọn dãy con [9, 560] có độ dài là 2.

Subtask

  • Có 50% số test ứng với 50% số điểm có ~n≤1000~;
  • 50% số test còn lại tương ứng với 50% số điểm không có giới hạn gì thêm.

Bình luận đầu tiên

Bình luận

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