Bài 4: Đẹp hoàn hảo (HSG 9 Đà Nẵng 2025-2026)

Xem PDF




Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1500 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Đoạn con của dãy số là một dãy các số được tạo thành từ các phần tử liên tiếp của dãy số ban đầu.

Độ đẹp của một dãy số là một số nguyên dương \(X\) nhỏ nhất, sao cho ta có thể chia dãy số ban đầu thành \(X\) đoạn con không giao nhau và tổng của tất cả các số trong mỗi đoạn con không lớn hơn \(S\). Ví dụ: Với \(S = 8\), đoạn \([2, 3, 5]\) có thể chia thành hai hoặc ba đoạn con có tổng không lớn hơn \(S\): \(([2,3], [5])\) hoặc \(([2], [3,5])\) hoặc \(([2], [3], [5])\). Vì cần tìm \(X\) nhỏ nhất nên đoạn \([2, 3, 5]\) có độ đẹp là \(2\).

Độ đẹp hoàn hảo của dãy số là tổng độ đẹp tất cả đoạn con của nó.

Yêu cầu: Cho dãy số nguyên dương \(A_1, A_2, \ldots, A_N\). Tính độ đẹp hoàn hảo của dãy số đã cho.

Input

  • Dòng thứ nhất chứa hai số nguyên dương \(N\)\(S\) cách nhau một ký tự trống. (\(N \leq 10^5\), \(S \leq 10^9\)).
  • Dòng thứ hai chứa \(N\) số nguyên dương \(A_1, A_2, \ldots, A_N\) (\(A_i \leq 10^6\)) mỗi số cách nhau một ký tự trống.

Output

  • Ghi ra một số nguyên duy nhất là kết quả của bài toán.

Example

Test 1

Input
4 8
1 2 5 3
Output
12
Note

Dãy \(1, 2, 5, 3\) có các đoạn con là: \([1]\), \([2]\), \([5]\), \([3]\), \([1,2]\), \([2,5]\), \([5,3]\), \([1,2,5]\), \([2,5,3]\), \([1,2,5,3]\).

Trong đó: \([1]\) có độ đẹp là \(1\), \([2]\) có độ đẹp là \(1\), \([5]\) có độ đẹp là \(1\), \([3]\) có độ đẹp là \(1\), \([1,2]\) có độ đẹp là \(1\), \([2,5]\) có độ đẹp là \(1\), \([5,3]\) có độ đẹp là \(1\), \([1,2,5]\) có độ đẹp là \(1\), \([2,5,3]\) có độ đẹp là \(2\), \([1,2,5,3]\) có độ đẹp là \(2\).

Vậy độ đẹp hoàn hảo bằng: \(1+1+1+1+1+1+1+1+2+2 = 12\).

Scoring

  • Subtask \(1\) (\(20\%\) số điểm): \(N \leq 10\); \(1 \leq A_i \leq 10^5\); \(10^6 \leq S \leq 10^9\).
  • Subtask \(2\) (\(20\%\) số điểm): \(N \leq 10^2\); \(A_i \leq 10^3\); \(10 \leq S \leq 10^9\).
  • Subtask \(3\) (\(30\%\) số điểm): \(N \leq 10^3\); \(A_i \leq 10^4\); \(10 \leq S \leq 10^9\).
  • Subtask \(4\) (\(30\%\) số điểm còn lại): không có ràng buộc gì thêm.

Bình luận

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

Không có bình luận nào.

Kỳ thi: