Bài 4. Xóa đoạn (HSG 9 Hà Nội 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: 1600 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho dãy số nguyên \(A\) gồm \(N\) phần tử \(A_1, A_2, ..., A_N\) và số nguyên \(S\). Bạn có thể xóa đi một đoạn con liên tiếp bất kỳ trong dãy (tức là chọn hai chỉ số \(L, R\) với \(1 \leq L \leq R \leq N\) và xóa các phần tử \(A_L, A_{L+1}, ..., A_R\)). Quy ước: Nếu xóa hết dãy thì tổng còn lại bằng \(0\).

Yêu cầu: Tìm độ dài nhỏ nhất của đoạn con cần xóa sao cho tổng các phần tử còn lại của dãy không vượt quá \(S\). Nếu không cần xóa đoạn nào thì kết quả là \(0\), nếu không có cách xóa thỏa mãn thì kết quả là \(-1\).

Input

  • Dòng đầu tiên chứa số nguyên dương \(N\) \((N \leq 10^5)\)
  • Dòng thứ hai chứa \(N\) số nguyên \(A_1, A_2, ..., A_N\) \((|A_i| \leq 10^5; 1 \leq i \leq N)\)
  • Dòng thứ ba chứa số nguyên \(S\) \((|S| \leq 10^{14})\)

Output

  • Gồm một số nguyên là kết quả của bài toán

Example

Test 1

Input
5
4 -5 4 4 -2
0
Output
2
Note

Tổng dãy ban đầu là 5, cần tổng dãy nhỏ hơn hoặc bằng 0. Có thể xóa đoạn [3, 4] có tổng là 8 ⇒ tổng còn lại là 5 - 8 = -3 ≤ 0. Kết quả là 2.

Test 2

Input
3
4 2 1
0
Output
3
Note

Tổng dãy ban đầu là 7, cần tổng dãy nhỏ hơn hoặc bằng 0. Có thể xóa đoạn [1, 3] có tổng là 7 ⇒ tổng còn lại là 7 - 7 = 0 ≤ 0. Kết quả là 3.

Test 3

Input
3
1 2 3
-2
Output
-1
Note

Tổng dãy ban đầu là 6, cần tổng dãy nhỏ hơn hoặc bằng -2. Không có cách xóa thỏa mãn.

Test 4

Input
3
1 2 0
5
Output
0
Note

Tổng dãy ban đầu là 3, cần tổng dãy nhỏ hơn hoặc bằng 5. Không cần xóa đoạn nào.

Scoring

  • \(40\%\) số test ứng với \(40\%\) số điểm có \(N \leq 100; A_i \geq 0\)
  • \(20\%\) số test tiếp theo ứng với \(20\%\) số điểm có \(N \leq 5000; A_i \geq 0\)
  • \(20\%\) số test tiếp theo ứng với \(20\%\) số điểm có \(A_i \geq 0\)
  • \(20\%\) số test còn lại ứng với \(20\%\) số điểm không có ràng buộc gì thêm

Bình luận (2)

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

Kỳ thi: