Gửi bài giải
Điểm:
10,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
1G
Input:
stdin
Output:
stdout
Người đăng:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch
Cho một dãy số gồm ~n~ số nguyên dương ~a_1, a_2, \ldots, a_n~ (~1 \leq a_i \leq 10^6, 1 \leq i \leq n \leq 10^5~).
Xét các dãy con là dãy các phần tử liên tiếp nhau của dãy ban đầu, mà trong đó các phần tử không giảm (~a_i \leq a_{i+1} \leq \ldots \leq a_j; 1 \leq i \leq j \leq n~).
Yêu cầu: Tìm dãy con có tổng các phần tử là lớn nhất trong các dãy con trên, nếu có nhiều dãy con thỏa mãn thì in ra các dãy con lần lượt theo vị trí xuất hiện, mỗi dãy con in trên một dòng.
INPUT
- Dòng đầu tiên ghi số nguyên dương ~n~;
- Dòng tiếp theo ghi ~n~ số nguyên dương, mỗi số cách nhau một khoảng trắng.
OUTPUT
- Dòng đầu tiên ghi tổng các phần tử của một dãy con tìm được theo yêu cầu;
- Các dòng tiếp theo, mỗi dòng ghi ra các phần tử của một dãy con tìm được.
SAMPLE INPUT 1
10
2 2 3 4 6 6 7 7 8 8
SAMPLE OUTPUT 1
53
2 2 3 4 6 6 7 7 8 8
SAMPLE INPUT 2
11
4 7 4 5 7 4 9 3 3 4 6
SAMPLE OUTPUT 2
16
4 5 7
3 3 4 6
SUBTASKS
- Có ~20\%~ số điểm ứng với ~n = 10~ và dãy ban đầu là một dãy không giảm;
- Có ~20\%~ số điểm ứng với ~(11 \leq n \leq 200)~;
- Có ~20\%~ số điểm ứng với ~(201 \leq n \leq 10^3)~;
- Có ~40\%~ số điểm còn lại ứng với ~(10^3 < n \leq 10^5)~.
Bình luận