// 題目

步道上的集合點

每日一題・2026-11-09 上線・免費到 2026-12-09

  • 每日一題
  • 暖身
  • APCS 中級
  • 中位數最小化距離和

時間限制 1 秒・記憶體 256 MB

到 Aki-Judge 送出

送出程式要先用 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。

到 Aki-Judge 送出

送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。

卡住了可以到 Discord 的 #程式問題 發問,小墨助教會先給提示,不會直接給答案。