// 題目

配對申請人與公寓

Match Applicants to Apartments・apcs-09-01

  • APCS 中高級
  • 雙指標
  • APCS 實作專題・Two Pointers & Sliding Window

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

到 Aki-Judge 送出

送出程式要先用 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,兩者坪數剛好相同,可以配對。

到 Aki-Judge 送出

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

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