Bài 4 - Độ dài đoạn (HSG 9 An Giang 2025-2026)

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Pypy 3, Python
Điểm: 1000 Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Cho dãy \(N\) số nguyên dương. Một đoạn con giảm là một dãy các phần tử liên tiếp từ trái sang phải sao cho phần tử đứng trước lớn hơn phần tử đứng sau (\(a_i > a_{i+1}\)).

Yêu cầu: Viết chương trình tìm đoạn con giảm dài nhất có tổng các phần tử là nhỏ nhất. Nếu có nhiều đoạn con thỏa mãn cùng độ dài và cùng tổng nhỏ nhất, hãy in ra đoạn con xuất hiện đầu tiên.

Input

  • Dòng thứ nhất chứa số nguyên dương \(N\) (\(1 \le N \le 500\)).
  • Dòng thứ hai gồm \(N\) số nguyên \(a_i\) (\(|a_i| \le 1000\)), mỗi số cách nhau một khoảng trắng.

Output

  • Dòng 1: Độ dài của đoạn con giảm dài nhất có tổng nhỏ nhất.
  • Dòng 2: Tổng nhỏ nhất của đoạn con đó.
  • Dòng 3: Các phần tử của đoạn con tìm được, mỗi số cách nhau một khoảng trắng.

Example

Test 1

Input
9
1 2 1 3 4 5 3 2 4
Output
3
10
5 3 2
Note

Đoạn con giảm dài nhất có độ dài là \(3\). Trong dãy có đoạn 5 3 2 là đoạn con giảm dài nhất với tổng là \(5 + 3 + 2 = 10\).

Test 2

Input
9
1 3 2 1 4 5 3 2 4
Output
3
6
3 2 1
Note

Có hai đoạn con giảm cùng độ dài \(3\)3 2 1 (tổng \(6\)) và 5 3 2 (tổng \(10\)). Đoạn con có tổng nhỏ nhất là 3 2 1.

Constraints

  • \(1 \le N \le 500\)
  • \(|a_i| \le 1000\)

Bình luận (1)

Mới nhất
Tải bình luận...