trang chủ / đề bài / dhbb23_clk_11_a

Dự trữ nước

Đề bài

Mô tả

Một con mương cung cấp nước cho đồng ruộng. Để điều tiết dòng chảy, người dân đặt n cột bê tông xếp cạnh nhau, có cùng độ rộng với con mương và có chiều cao lần lượt là a1,a2,…,an. Khi trời mưa, nước sẽ đọng lại ở các cột có độ cao thấp hơn: phía trên cột thứ i, nước dâng tới mức thấp hơn trong hai độ cao: cột cao nhất trong các cột 1,2,…,i và cột cao nhất trong các cột i,i+1,…,n. Giả sử có 7 cột với độ cao lần lượt là 4,1,3,2,5,1,6 thì lượng nước mưa đọng lại là 10 đơn vị.

Để mặt đáy được bằng phẳng, mọi người muốn nâng các cột bê tông lên. Cụ thể, cần chọn một độ cao nguyên X lớn nhất và nâng các cột có độ cao thấp hơn X lên bằng X (các cột cao từ X trở lên giữ nguyên) mà vẫn đảm bảo lượng nước mưa được giữ lại ít nhất là M đơn vị.

Yêu cầu: Cho độ cao của các cột bê tông và lượng nước cần giữ lại, hãy tìm độ cao X lớn nhất thỏa mãn yêu cầu. Giả sử lượng nước khi trời mưa là đủ để ngập các vũng nước và nước không bị thất thoát.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên dương n và M.
  • Dòng thứ hai chứa n số nguyên dương a1,a2,…,an.

Dữ liệu ra

In ra một số nguyên X thỏa mãn yêu cầu. Trường hợp không có phương án (kể cả khi không nâng cột nào, lượng nước giữ lại vẫn ít hơn M) thì in ra −1.

Ràng buộc

  • 1≤n≤105.
  • 1≤M≤1018.
  • 1≤ai≤2·109.

Ví dụ

Input Output Giải thích
7 4
4 1 3 2 5 1 6
3 Với X=3 các cột thành 4,3,3,3,5,3,6, giữ được 1+1+1+2=5≥4 đơn vị. Với X=4 các cột thành 4,4,4,4,5,4,6, chỉ giữ được 1 đơn vị.
7 11
4 1 3 2 5 1 6
-1 Ví dụ bổ sung. Khi không nâng cột nào chỉ giữ được 10<11 đơn vị, nâng cột lên chỉ làm lượng nước giảm đi.
5 3
5 2 4 1 5
4 Ví dụ bổ sung. Với X=4 các cột thành 5,4,4,4,5, giữ được 3 đơn vị; cột cao 4 không được nâng nhưng nước phía trên nó vẫn được tính.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0