纜車上的陪同者
每日一題・2026-11-08 上線・免費到 2026-12-08
- 每日一題
- 挑戰
- APCS 高級
- 兩端配對貪心
時間限制 1 秒・記憶體 256 MB
送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。
題目敘述
山上的纜車站有 n 位遊客,第 i 位遊客的體重為 wi,類別為 ti:ti=1 表示兒童,ti=0 表示大人。站方有 K 台纜車,每位遊客必須恰好搭乘其中一台,每台最多載 2 人,空車也可以。
- 兒童不能單獨搭車,也不能和另一位兒童同車,必須和一位大人同車。
- 大人可以單獨搭一台、和另一位大人同車,或陪同一位兒童。
一台纜車的載重是車上乘客的體重總和。站方要設定一個整數載重上限 W,每台車的載重都不能超過 W(剛好等於 W 可以)。請求出能讓所有遊客搭完的最小 W。若不論 W 多大都無法安排,輸出 -1。
輸入格式
第一行有兩個整數 n、K。 第二行有 n 個整數 w1,…,wn。 第三行有 n 個整數 t1,…,tn。
輸出格式
輸出一個整數,為最小的 W,或 -1。
限制
- 1 ≤ n ≤ 2 × 105
- 1 ≤ K ≤ n
- 1 ≤ wi ≤ 109
- ti ∈ {0,1}
- 時間限制 1 秒
子題配分
- (20 分)n ≤ 14。
- (30 分)所有 ti=0。
- (50 分)無額外限制。
範例
範例 1
輸入
5 3
30 50 20 60 40
1 0 0 0 0輸出
70範例 2
輸入
4 2
5 5 5 5
1 0 0 0輸出
10說明
範例 1:兒童體重 30,大人體重 20、40、50、60,共 3 台車。若兒童搭配最輕的大人 20,剩下 40、50、60 只能用 2 台車,必有一對同車,最小載重和是 40+50=90。改讓兒童搭配 40(載重 70),再讓 20 和 50 同車(載重 70),60 單獨一台,三台車最大載重為 70。W=69 以下無法安排,答案為 70。
範例 2:兒童搭一位大人載重 10,另外兩位大人同車載重 10,剛好等於 W 也算合法。
範例
範例 1
輸入
5 3
30 50 20 60 40
1 0 0 0 0輸出
70兒童 30 配大人 40(載重 70),20 與 50 同車(70),60 單獨一台,最大載重 70。若兒童配最輕的 20,剩下三位大人至少要有一對同車,載重和至少 90。
範例 2
輸入
4 2
5 5 5 5
1 0 0 0輸出
10兒童配一位大人載重 10,另外兩位大人同車載重 10。剛好等於 W 算合法,所以答案是 10。
送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。
卡住了可以到 Discord 的 #程式問題 發問,小墨助教會先給提示,不會直接給答案。