a066. 破損字幕修補

中等陣列字串模擬

時間限制 2000 ms ・ 記憶體限制 256 MB

題目描述

演唱會字幕牆有些格子的資料損毀了,畫面用 ? 標出這些讀不到的字元。工程師只打算進行一輪自動修補:每個損毀格子向上下左右看看,參考附近仍看得到的字母來決定要填入什麼。斜對角的格子不算鄰居;超出字幕牆的方向也不算。

對每個 ?,只統計相鄰格子中原本就不是 ? 的大寫字母,選出出現次數最多的字母填入。若多個字母次數並列,選字母順序最小的;如果四個方向都找不到可用字母,該格仍保留 ?。原本就完整的字母不可改動。

所有損毀格子要視為同時修補:判斷每一格時只能看修補之前的原始畫面。就算隔壁的 ? 在這一輪也會被填上字母,它填出的結果也不能拿來幫你修補目前這格。請輸出一輪修補結束後的字幕牆。

輸入格式

第一行 R C,接著 R 行,每行恰有 C 個大寫英文字母或 ?。

限制

1 ≤ R, C ≤ 100。

輸出格式

輸出修補後的 R 行字幕牆。

範例1

範例輸入:

2 2
A?
?B

範例輸出:

AA
AB

兩個問號都遇到 A、B 各一次,平手選 A。

範例2

範例輸入:

1 1
?

範例輸出:

?

唯一的格子沒有任何相鄰字母,因此不能猜出內容。

範例測資

範例輸入 1

2 2
A?
?B

範例輸出 1

AA
AB

範例輸入 2

1 1
?

範例輸出 2

?
請先登入後再提交程式碼

討論與題解

載入討論區…

更多