步道上的集合點
每日一題・2026-11-09 上線・免費到 2026-12-09
- 每日一題
- 暖身
- APCS 中級
- 中位數最小化距離和
時間限制 1 秒・記憶體 256 MB
送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。
題目敘述
一條步道上有 n 位同學,第 i 位站在整數座標 xi(可以有多人站在同一個座標)。老師要選一個整數座標 p 當集合點,所有人都沿著步道走到 p,每走 1 單位長度算 1 步。因為只有一段步道設有休息站,集合點必須滿足 L ≤ p ≤ R。
請找出讓所有人的步數總和最小的集合點。若有多個 p 都能讓總和最小,取其中最小的 p。
輸入格式
第一行有三個整數 n、L、R。
第二行有 n 個整數 x1, x2, …, xn。
輸出格式
輸出一行兩個整數,以空格分隔:集合點 p,以及最小的步數總和。
限制
- 1 ≤ n ≤ 2 × 105
- 0 ≤ L ≤ R ≤ 109
- 0 ≤ xi ≤ 109
- 步數總和可能超過 32 位元整數的範圍。
範例
範例 1
輸入
4 0 10
9 1 8 2輸出
2 14範例 2
輸入
3 8 20
3 1 2輸出
8 18說明
範例 1:四人的座標是 1、2、8、9,p 可選 0 到 10。選 p=2,步數為 1+0+6+7=14;選 p=3,步數為 2+1+5+6=14。其實 p 在 2 到 8 之間的任何整數,總和都是 14,更小或更大的 p 都會變多。所以最小的集合點是 2,總步數 14。
範例 2:三人都站在 3 以下,但集合點只能選 8 到 20,總和隨 p 變大而增加,所以選 p=8,步數為 5+7+6=18。
範例
範例 1
輸入
4 0 10
9 1 8 2輸出
2 14座標排序後是 1、2、8、9。p 在 2 到 8 之間的整數,總和都是 14,題目要最小的 p,所以輸出 2 14。
範例 2
輸入
3 8 20
3 1 2輸出
8 18所有人都在 3 以下,但集合點只能選 8 到 20。總和隨 p 增大而增加,所以選 p=8,總步數 5+7+6=18。
送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。
卡住了可以到 Discord 的 #程式問題 發問,小墨助教會先給提示,不會直接給答案。