Trong toán học, một cấp số cộng (tiếng Anh: arithmetic progression hoặc arithmetic sequence) là một dãy số thoả mãn điều kiện: hai phần tử liên tiếp nhau sai khác nhau một hằng số. Chẳng hạn, dãy số \(3,5,7,9,11..\) là một cấp số cộng với các phân tử liên tiếp sai khác nhau hằng số \(2\). Hằng số sai khác chung được gọi là công sai của cấp số cộng. Các phần tử của nó cũng được gọi là các số hạng.
Bạn cần viết chương trình giải quyết vấn đề sau liên quan đến cấp số cộng: Cho 1 dãy gồm \(n\) số nguyên \(a_1,a_2...a_N\). Một cấp số cộng là 1 dãy con \(B\) của dãy \(A\) thỏa mãn:
- \(B_i = B_{i-1}+D\)
- \(D\) là công sai của cấp số cộng này
Yêu cầu: Bạn hãy tìm 1 cấp số cộng dài nhất của dãy \(A\) đã cho với công sai là một số \(D\) tuỳ ý do bạn chọn thoả mãn \(1 \le D \le 50\)
Dữ liệu vào
- Dòng đầu ghi số \(N\) \((1 \lt N \lt 2000)\)
- Dòng thứ hai ghi \(N\) số \(A_i\) là giá trị phần tử thứ \(i\) của dãy \((|A_i| \le 10^9)\)
Dữ liệu ra
- Gồm 1 dòng duy nhất là số phần tử của cấp số cộng dài nhất tìm được.
Input 1
10
1 10 3 20 5 30 7 9 40 11
Output 1
6
Giải thích
- Chọn công sai \(D=2\) khi đó dãy con dài nhất thoả mãn là \(1,3,5,7,9,11\)
Nhận xét