Submission #67586675
Source Code Expand
N,M,*X = $<.read.split.map(&:to_i)
X.sort!
D = X.each_cons(2).with_index.map{|(x,y),i|
(y-x)*N+i
}.sort.reverse
W = (0..(D[0]||0)+1).bsearch{|w|
# w 以上の距離がある家と家は同じ基地局でカバーしない
# ⇔距離が w 未満の家と家は同じ基地局でカバーする
# w が大きくなると必要な基地局が減る
# 必要な基地局が初めて M 以下になる w を求める
カバーしない家間の数 = D.bsearch_index{|d| w>d }||N-1
必要な基地局の数 = カバーしない家間の数+1
必要な基地局の数<=M or next
}
p D.sum{|d| d<W ? d/N : 0 }
Submission Info
| Submission Time | |
|---|---|
| Task | D - Transmission Mission |
| User | ds14050 |
| Language | Ruby (ruby 3.2.2) |
| Score | 400 |
| Code Size | 626 Byte |
| Status | AC |
| Exec Time | 366 ms |
| Memory | 68720 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00-sample-01.txt, 00-sample-02.txt, 00-sample-03.txt |
| All | 00-sample-01.txt, 00-sample-02.txt, 00-sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00-sample-01.txt | AC | 46 ms | 17408 KiB |
| 00-sample-02.txt | AC | 47 ms | 17016 KiB |
| 00-sample-03.txt | AC | 47 ms | 17404 KiB |
| 01-01.txt | AC | 46 ms | 17500 KiB |
| 01-02.txt | AC | 47 ms | 17272 KiB |
| 01-03.txt | AC | 46 ms | 17432 KiB |
| 01-04.txt | AC | 48 ms | 17388 KiB |
| 01-05.txt | AC | 47 ms | 17404 KiB |
| 01-06.txt | AC | 47 ms | 17548 KiB |
| 01-07.txt | AC | 266 ms | 64116 KiB |
| 01-08.txt | AC | 268 ms | 64624 KiB |
| 01-09.txt | AC | 332 ms | 63716 KiB |
| 01-10.txt | AC | 259 ms | 68720 KiB |
| 01-11.txt | AC | 339 ms | 63996 KiB |
| 01-12.txt | AC | 216 ms | 48064 KiB |
| 01-13.txt | AC | 366 ms | 63936 KiB |
| 01-14.txt | AC | 250 ms | 62336 KiB |
| 01-15.txt | AC | 295 ms | 64724 KiB |