trang chủ / bài tập / castledef

Phòng thủ lâu đài

Đề bài

Mô tả

Một bức tường thành dài gồm n đoạn, đánh số từ 1 đến n. Hiện tại đoạn thứ iai cung thủ đứng gác. Một cung thủ đứng ở đoạn i có thể bắn yểm trợ cho mọi đoạn j thỏa mãn |ij|r (riêng r=0 nghĩa là cung thủ chỉ bắn được đúng đoạn mình đứng).

Mức phòng thủ của đoạn i là tổng số cung thủ có thể bắn yểm trợ cho đoạn đó. Độ tin cậy của phương án phòng thủ là giá trị nhỏ nhất trong các mức phòng thủ của tất cả các đoạn.

Bạn không thể di chuyển các cung thủ đang đứng trên tường, nhưng có thêm một lực lượng dự bị gồm k cung thủ có thể bố trí tùy ý vào các đoạn tường. Hãy bố trí lực lượng dự bị sao cho độ tin cậy của phương án phòng thủ là lớn nhất có thể.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, rk: số đoạn tường, tầm bắn của cung thủ và số cung thủ dự bị.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an: số cung thủ hiện có ở mỗi đoạn.

Dữ liệu ra

In ra một số nguyên duy nhất: độ tin cậy lớn nhất có thể đạt được.

Ràng buộc

  • 1n5·105
  • 0rn
  • 0k1018
  • 0ai109

Ví dụ

Input Output Giải thích
4 2 0
1 2 3 4
6 Với r=2, đoạn 1 được yểm trợ bởi các đoạn 1, 2, 3 nên mức phòng thủ là 1+2+3=6; các đoạn 2, 3, 4 có mức phòng thủ lần lượt là 10,10,9. Không có quân dự bị nên độ tin cậy là 6.
5 0 6
5 4 3 4 9
5 Mỗi cung thủ chỉ bảo vệ đúng đoạn mình đứng. Thêm 1 quân vào đoạn 2, 2 quân vào đoạn 3, 1 quân vào đoạn 4 (dùng 4 trong 6 quân dự bị), mọi đoạn đạt mức ít nhất 5. Không thể đạt mức 6 vì cần tới 1+2+3+2=8>6 quân.
5 1 1
2 1 2 1 2
3 Đặt 1 quân dự bị vào đoạn 3: các mức phòng thủ trở thành 3,6,5,6,3, độ tin cậy là 3.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0