Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
0.05s
Giới hạn bộ nhớ:
256M
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift
Siro được cho n vòng tròn, mỗi vòng tròn chứa một giá trị nguyên dương có thể trùng nhau. Gọi ~A_i~ là giá trị chứa trong vòng tròn ~i~.
Nếu ba vòng tròn ~i, j, k~ khác nhau và thỏa đẳng thức ~A_i + A_j = A_k~ thì ta vẽ ~2~ cung có hướng ~i~ -> ~k~ và ~j~ -> ~k~.
Nhiệm vụ của bạn là lập trình tính và in ra đường đi dài nhất có thể qua bao nhiêu đỉnh.
Input
Dòng đầu tiên ghi số nguyên dương ~N (3 \le N \le 1000)~
Dòng thứ hai ghi ~N~ số nguyên dương ứng với các giá trị chứa trong vòng tròn ~(1 \le A_i \le 1000)~
Output
Gồm ~1~ dòng ghi ~1~ số nguyên dương là kết quả của bài toán.
Sample
Input #1
10
4 6 5 8 1 2 3 2 3 4
Output #1
6
Hint
Với 10 vòng tròn chứa các giá trị liệt kê trong #1, một đường đi dài nhất qua 6 đỉnh chứa giá trị sau:
1 -> 3 -> 4 -> 5 -> 6 -> 8
Bình luận