Dãy con dài nhất các phần tử liền kề khác nhau
Xem dạng PDF
Gửi bài giải
Điểm:
5,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch
Cho dãy số ~A~ gồm ~N~ phần tử.
Nhiệm vụ của bạn là tìm dãy con liên tiếp dài nhất sao cho hai phần tử liền kề nhau trong dãy con đều khác nhau.
Nếu có nhiều dãy con thỏa mãn có cùng độ dài lớn nhất, hãy in ra dãy con có tổng các phần tử lớn nhất.
Dữ liệu vào
- Dòng đầu tiên chứa số nguyên ~N~.
- Dòng thứ hai chứa ~N~ số nguyên ~A_i~.
Ràng buộc
- ~1 ≤ N ≤ 10^6~.
- ~1 ≤ A_i ≤ 10^6~.
Kết quả
In ra đáp án của bài toán trên ~2~ dòng:
- Dòng đầu tiên in ra độ dài của dãy con dài nhất.
- Dòng thứ hai in ra các phần tử trong dãy con được chọn.
Ví dụ
Dữ liệu vào
8
1 2 3 4 4 5 6 7
Kết quả
4
4 5 6 7
Giải thích
Các dãy con liên tiếp thỏa mãn có độ dài lớn nhất là:
- ~1 2 3 4~
- ~4 5 6 7~
Cả hai dãy đều có độ dài ~4~, nhưng:
- Tổng dãy ~1 2 3 4~ là ~10~.
- Tổng dãy ~4 5 6 7~ là ~22~.
Vì vậy chọn dãy ~4 5 6 7~.
Bình luận