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

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.