尋寶遊戲 (APCS 2026-10 中級)

2.0s 256M

小華在玩尋寶遊戲。藏寶地圖是一個 \(R\) 列、\(C\) 欄的方格,由上而下第 \(r\) 列、由左而右第 \(c\) 欄的格子記為 \((r, c)\),列、欄都從 \(1\) 開始編號。每一格都藏有寶藏,寶藏價值 \(y\) 是 \(0\)~\(10^4\) 的整數,但小華一開始不知道任何一格的 \(y\)。

小華可以探勘。每次探勘選一個中心格子 \((r, c)\) 和兩個整數 \(s\)、\(t\),從中心往上、往下各延伸 \(s\) 列,往左、往右各延伸 \(t\) 欄,探勘這個 \(2s + 1\) 列、\(2t + 1\) 欄的長方形。長方形裡的每一格都會回傳一個探勘值 \(x\);長方形超出地圖的格子,探勘值是 \(-1\)。

地圖內的格子,探勘值 \(x\) 和寶藏價值 \(y\) 的關係如下表:

在第 \(1\) 列或第 \(R\) 列 在其他列
這次探勘的中心格子 \(x = 2(y + 1)\) \(x = 2y\)
這次探勘的其他格子 \(x = y + 1\) \(x = y\)
  • 第 \(1\) 列、第 \(R\) 列指的是整張地圖最上面和最下面的一列,不是探勘範圍的最上、最下列。
  • \(R = 1\) 時,地圖只有一列,它同時是第 \(1\) 列和第 \(R\) 列,探勘值仍然照上表「在第 \(1\) 列或第 \(R\) 列」那一欄計算,只加一次 \(1\)。
  • 是不是中心格子只看這一次探勘:同一格可能在某一次探勘是中心,在另一次探勘不是。

小華一共探勘了 \(K\) 次。請根據這 \(K\) 次的探勘值,算出每一格的寶藏價值;從沒被探勘到的格子無法得知寶藏價值,輸出 \(-1\)。

輸入格式

第一行有兩個整數 \(R\) 和 \(C\),代表地圖有 \(R\) 列、\(C\) 欄。第二行有一個整數 \(K\),代表探勘的次數。

接下來依序是 \(K\) 次探勘的結果。每一次先有一行四個整數 \(r\)、\(c\)、\(s\)、\(t\),代表這次探勘的中心格子是 \((r, c)\),往上、往下各延伸 \(s\) 列,往左、往右各延伸 \(t\) 欄;接著有 \(2s + 1\) 行,每行有 \(2t + 1\) 個整數,由上而下、由左而右依序是探勘範圍裡每一格的探勘值。

同一行的整數之間以一個空白隔開。

限制

  • \(1 \le R \le 100\)
  • \(1 \le C \le 100\)
  • \(1 \le K \le 50\)
  • \(1 \le r \le R\),\(1 \le c \le C\)
  • \(0 \le s \le 10\),\(0 \le t \le 10\)
  • 每一格的寶藏價值 \(y\) 都是整數,\(0 \le y \le 10^4\)。
  • 探勘範圍超出地圖的格子,探勘值是 \(-1\);地圖內的格子,探勘值依上表由那一格的寶藏價值算出。
  • 同一格被探勘好幾次時,每一次的探勘值都由同一個寶藏價值算出,探勘結果互不矛盾。

輸出格式

輸出 \(R\) 行,第 \(r\) 行有 \(C\) 個整數,依序是第 \(r\) 列第 \(1\)~\(C\) 欄的寶藏價值;從沒被探勘到的格子輸出 \(-1\)。同一行的整數之間以一個空白隔開。

評分說明

每一筆測試資料的執行時間限制均為 \(2\) 秒,依正確通過的測試資料筆數給分。

子題 分數 額外限制
1 60 \(R = 1\),且每次探勘 \(s = 0\)
2 40 無額外限制

範例輸入 1

1 4
1
1 3 0 1
1 4 1

範例輸出 1

-1 0 1 0

範例解釋 1

地圖只有 \(1\) 列,這一列同時是第 \(1\) 列和第 \(R\) 列。唯一的一次探勘以 \((1, 3)\) 為中心、\(s = 0\)、\(t = 1\),探勘範圍是 \((1, 2)\)、\((1, 3)\)、\((1, 4)\) 三格:

格子 探勘值 \(x\) 這次的中心 寶藏價值 \(y\)
\((1, 2)\) 1 否 0
\((1, 3)\) 4 是 1
\((1, 4)\) 1 否 0

\((1, 2)\)、\((1, 4)\) 不是中心,\(y + 1 = 1\),所以 \(y = 0\);\((1, 3)\) 是中心,\(2(y + 1) = 4\),所以 \(y = 1\)。\((1, 1)\) 沒被探勘到,輸出 \(-1\)。

範例輸入 2

4 3
2
1 2 1 1
-1 -1 -1
1 42 1
1 7 13
2 2 1 0
21
14
37

範例輸出 2

0 20 0
1 7 13
-1 37 -1
-1 -1 -1

範例解釋 2

第 1 次探勘以 \((1, 2)\) 為中心、\(s = 1\)、\(t = 1\),範圍是 \(3\) 列 \(3\) 欄,最上面那一列在地圖外(第 \(1\) 列的上面),探勘值都是 \(-1\)。第 2 次探勘以 \((2, 2)\) 為中心、\(s = 1\)、\(t = 0\),範圍是 \((1, 2)\)、\((2, 2)\)、\((3, 2)\) 三格。

下圖左邊是兩次探勘的範圍和探勘值:標 1 的綠框是第 1 次、標 2 的橘框是第 2 次,實心底的數字是那一次的中心格子,虛線格在地圖外。右邊是答案。

左圖:4 列 3 欄的地圖。第 1 次探勘的綠框蓋住第 1、2 列和地圖上方一列虛線格,探勘值上方一列都是 -1,第 1 列是 1、42、1,第 2 列是 1、7、13,中心 (1,2) 的 42 是實心底。第 2 次探勘的橘框蓋住第 2 欄的第 1~3 列,探勘值是 21、14、37,中心 (2,2) 的 14 是實心底。右圖:答案,第 1 列 0、20、0,第 2 列 1、7、13,第 3 列 -1、37、-1,第 4 列都是 -1

地圖有 \(4\) 列,第 \(1\) 列和第 \(4\) 列是最上、最下的列。探勘到的每一格如下表,「探勘」是第幾次探勘,「中心」是那一次是不是以這一格為中心:

格子 探勘 \(x\) 中心 第 \(1\) 或第 \(R\) 列 \(y\)
\((1, 1)\) 1 1 否 是 0
\((1, 2)\) 1 42 是 是 20
\((1, 2)\) 2 21 否 是 20
\((1, 3)\) 1 1 否 是 0
\((2, 1)\) 1 1 否 否 1
\((2, 2)\) 1 7 否 否 7
\((2, 2)\) 2 14 是 否 7
\((2, 3)\) 1 13 否 否 13
\((3, 2)\) 2 37 否 否 37

\((1, 2)\) 和 \((2, 2)\) 各被探勘兩次,一次是中心、一次不是,兩次算出的寶藏價值相同。\((1, 1)\) 和 \((2, 1)\) 的探勘值都是 \(1\),但 \((1, 1)\) 在第 \(1\) 列,寶藏價值是 \(0\);\((2, 1)\) 在其他列,寶藏價值是 \(1\)。其餘格子沒被探勘到,輸出 \(-1\)。

題目來源

APCS 2026 年 10 月中級實作題第 1 題。

官方未公布題本,題敘依考生考後回憶整理,細節可能與正式試題有出入。

題目頁說明

快速鍵

主要功能

  • 範例測試 — 執行題目附帶的範例測資並自動比對預期輸出。
  • 自訂測試 — 自己貼 stdin 執行程式。可勾選「與預期輸出比對 (diff)」做行對行比對。
  • 模板 — 貼上你在個人資料設定的預設程式碼模板。
  • 協作 — 與其他同學共筆編輯這題的程式碼。
  • 自動草稿 — 編輯器內容每 1.5 秒自動存到瀏覽器(per 帳號 / 題目 / 語言)。
  • 提交 — 把程式碼交給 judge 評測,回傳 AC / WA / TLE 等結果。

限制

  • 程式碼最多 65,536 字元
  • 自訂測試 stdin 與預期輸出各最多 1 MB (約 100 萬字元)
  • 自訂測試與範例測試共用一個沙箱,每人約 3 秒 1 次 (範例測試 1 秒 1 次)
  • 自訂測試與範例測試都有 15 秒 牆鐘上限(正式評測仍依題目原本時限)
  • 互動題不提供自訂測試(無法模擬與 judge 互動)。
  • 提交評測本身沒有 rate limit,但同題短時間內多次提交會被視為刷分。