TopCoder

User's AC Ratio

100.0% (2/2)

Submission's AC Ratio

66.7% (2/3)

Tags

Description

踩地雷是一個經典的小遊戲,透過點擊遊戲中空白的格子,就可以知道附近炸彈的數量,但是如果點擊的位置恰巧就是炸彈的位置,那麼遊戲就輸了。

給定炸彈的位置,現在就來製造一個地圖,能夠依照遊戲規則顯示附近的炸彈數量,附近的意思是指八方位相鄰的格子。但如果那個位置剛好就是炸彈的話,就以 -1 表示,下圖為一個範例:

請在程式碼的第一行引入標頭檔 lib0598.h,並實作以下函數:

  • void calc_bombs(int n, int m, bool **is_bomb, int **count)
    • $n, m$:代表地圖是一個 $n\times m$ 的矩陣。
    • $is$_$bomb$: 代表給定的炸彈位置,true 代表有炸彈,false 代表沒有炸彈。
    • $count$: 代表依照題目要求輸出的地圖結果。

保證對於所有測試資料 $1 \leq n, m \leq 1000$

注意請勿在你的程式碼宣告主函式 main() 以及進行任何輸入輸出的動作,否則將會發生不可預期的結果。

Input Format

本題沒有輸入,隨意輸入將會得到不可預期的結果。

Output Format

本題沒有輸出,隨意輸出將會得到不可預期的結果。

Sample Input 1

4 3
0 0 1
0 0 0
0 1 1
1 1 0

Sample Output 1

0 1 -1
1 3 3
3 -1 -1
-1 -1 3

Hints

測試用標頭檔
這裡提供一份本地測試用的標頭檔,你可以將其複製下來存檔成 lib0598.h#include "lib0598.h" 做使用。但請注意,這只是測試用的標頭檔,一些與解題無關的行為將會與 judge 上的有所不同,因此請不要嘗試任何與解題無關的行為,很可能會導致各種不可預期的後果。

Problem Source

Subtasks

No. Testdata Range Constraints Score
1 0~2 範例測資 0
2 0~11 無額外限制 100

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 524288 65536 1 2
1 1000 524288 65536 1 2
2 1000 524288 65536 1 2
3 1000 524288 65536 2
4 1000 524288 65536 2
5 1000 524288 65536 2
6 1000 524288 65536 2
7 1000 524288 65536 2
8 1000 524288 65536 2
9 1000 524288 65536 2
10 1000 524288 65536 2
11 1000 524288 65536 2