trang chủ / đề bài / hn_hsg9_23_c

Trạm phát sóng

Đề bài

Mô tả

Các trạm thu, phát sóng viễn thông của thành phố được đặt trên một đường tròn. Đường tròn này được chia thành 106 điểm cách đều nhau theo chiều kim đồng hồ, đánh số từ 0 đến 106−1 (điểm 106−1 kề với điểm 0). Một vị trí trên đường tròn được chọn là mốc 0. Có N trạm thu sóng được đánh thứ tự từ 1 đến N, trạm thứ i đặt ở vị trí ai (1≤i≤N).

Thành phố dự kiến sẽ đầu tư K trạm phát sóng với phạm vi phát như nhau. Tuy nhiên, một trạm phát sóng với phạm vi phát càng dài thì chi phí càng cao. Vì vậy, thành phố cần tính toán để đầu tư các trạm phát sóng có phạm vi phát ngắn nhất và phải đảm bảo các trạm thu sóng đều nhận được tín hiệu.

Khi một trạm phát sóng có phạm vi phát là R thì các trạm thu sóng trong khoảng cách R theo cả hai chiều kim đồng hồ đều nhận được tín hiệu. Ví dụ: trạm phát sóng tại vị trí 3 với phạm vi phát 1 thì cả trạm thu sóng ở vị trí 2 và 4 đều nhận được tín hiệu. Vị trí trạm phát có thể được đặt cùng vị trí của một trạm thu nào đó.

Yêu cầu: Tìm phạm vi phát ngắn nhất của K trạm phát sóng sẽ đầu tư để N trạm thu sóng đều nhận được tín hiệu.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên dương N (1≤N≤103).
  • Dòng thứ i trong N dòng tiếp theo chứa một số nguyên ai là vị trí trạm thu sóng thứ i (0≤ai<106, 1≤i≤N). Không có hai trạm nào cùng vị trí.
  • Dòng cuối cùng chứa số nguyên K là số trạm phát sóng (1≤K<N).

Dữ liệu ra

Một số nguyên duy nhất là phạm vi phát sóng ngắn nhất của K trạm phát.

Ràng buộc

  • 1≤K<N≤103.
  • 0≤ai<106, các ai đôi một khác nhau.

Ví dụ

Input Output Giải thích
4
5
1000
12345
987
2
498 Đặt một trạm phát sóng ở vị trí 503 và một trạm phát sóng ở vị trí 12340 có phạm vi phát sóng là 498.
2
1
999999
1
1 Đặt một trạm phát sóng ở vị trí 0 có phạm vi phát sóng là 1 (vị trí 999999 kề với vị trí 0 trên đường tròn).

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