trang chủ / đề bài / hp_ts10_26_e

Trạm BTS

Đề bài

Mô tả

Dọc theo một con đường Quốc lộ có n địa điểm dân cư. Để đơn giản ta có thể coi các địa điểm này như là các điểm trên trục toạ độ Ox với các hoành độ lần lượt là x1,x2,…,xn.

Công ty viễn thông ABC có kế hoạch lắp k trạm BTS tại các vị trí trên đường (mỗi vị trí có thể xem như là một điểm trên trục toạ độ) với "bán kính phủ sóng" đều bằng số nguyên dương R. Nếu một trạm BTS được đặt tại vị trí có hoành độ x thì nó có thể phủ sóng cho tất cả các điểm dân cư có vị trí nằm trong đoạn [x−R,x+R].

Yêu cầu: Tìm giá trị R nhỏ nhất để có thể bố trí cách lắp đặt k trạm BTS sao cho mỗi điểm dân cư đều nằm trong vùng phủ sóng của ít nhất một trạm.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên dương n,k.
  • Dòng thứ hai chứa n số nguyên x1,x2,…,xn.

Dữ liệu ra

Một số nguyên dương duy nhất là giá trị nhỏ nhất của R tìm được.

Ràng buộc

  • 1≤k≤n≤105.
  • |xi|≤109, các xi đôi một khác nhau (xi≠xj với i≠j).

Subtasks

  • Subtask 1 (25% số điểm): k=1.
  • Subtask 2 (25% số điểm): k=2.
  • Subtask 3 (25% số điểm): n≤300.
  • Subtask 4 (25% số điểm): không có ràng buộc gì thêm.

Ví dụ

Input Output Giải thích
4 2
1 3 8 12
2 Với bán kính phủ sóng R=2 một phương án đặt 2 trạm BTS hợp lệ là đặt tại các điểm có hoành độ 3,10. Ngoài ra không có cách nào đặt 2 trạm BTS có bán kính phủ sóng R=1 phủ sóng toàn bộ 4 điểm dân cư.
5 3
7 -2 15 0 9
1 (Ví dụ bổ sung.) Với R=1, đặt 3 trạm tại −1,8,15 là đủ. R phải là số nguyên dương nên không thể nhỏ hơn 1.

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