配對申請人與公寓
Match Applicants to Apartments・apcs-09-01
- APCS 中高級
- 雙指標
- APCS 實作專題・Two Pointers & Sliding Window
時間限制 1 秒・記憶體 64 MB
送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。
租屋仲介手上有 n 位申請人,每人都有一個理想坪數,另有 m 間待租的公寓,各有自己的坪數。只要公寓坪數與某位申請人的理想坪數相差不超過 k,這位申請人就願意承租。每位申請人最多租一間公寓,每間公寓也最多租給一位申請人。請算出最多能促成幾筆租約。
題目敘述
給定申請人的理想坪數 a1, a2, …, an 與公寓坪數 b1, b2, …, bm。要選出若干組 (i, j) 配對,滿足:
- 每個申請人編號 i 最多出現在一組配對中;
- 每間公寓編號 j 最多出現在一組配對中;
- 每一組配對都有 |ai − bj| ≤ k。
輸出配對組數的最大值。只需輸出這個數字,不必指出誰配到哪一間。
輸入格式
- 第 1 行:三個整數 n、m、k。
- 第 2 行:n 個整數 a1, …, an,為申請人的理想坪數。
- 第 3 行:m 個整數 b1, …, bm,為公寓的坪數。
輸出格式
- 一個整數,表示最多可成立的配對數。
限制
- 1 ≤ n, m ≤ 2 × 105
- 0 ≤ k ≤ 109
- 1 ≤ ai, bj ≤ 109
範例
範例 1
輸入
4 3 5
60 45 80 60
30 60 75輸出
2說明
坪數 60 的公寓可以給需求 60 的申請人(差 0),坪數 75 的公寓可以給需求 80 的申請人(差 5)。坪數 30 的公寓離最接近的需求 45 也差了 15,超過 k=5,無人能租。因此最多 2 組。
範例 2
輸入
1 1 0
1
1輸出
1說明
k=0,兩者坪數剛好相同,可以配對。
送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。
卡住了可以到 Discord 的 #程式問題 發問,小墨助教會先給提示,不會直接給答案。