#736. 星星亮度图

星星亮度图

题目描述

小杨用天文望远镜拍摄了一张 n 行 m 列的星空照片,照片中每个格子记录了一个亮度值(非负整数)。其中亮度值为 0 的格子表示没有星星,亮度值大于 0 的格子表示有一颗星星。

小杨想计算每个没有星星的格子周围 8 个方向上,最亮的那颗星星的亮度值是多少。如果该格子周围 8 个方向都没有星星,则输出 0。

我们定义两个格子相邻,当且仅当两个格子至少有一个公共顶点(即对于不在边缘的格子,周围 8 个格子均与其相邻)。

输入格式

第一行两个整数 n 和 m,表示星空照片的行数和列数。 接下来 n 行,每行 m 个整数,表示每个格子的亮度值。

输出格式

输出 n 行,每行 m 个数字(用空格分隔),对于第 i 行第 j 列:

  • 如果该格子有星星(亮度值 > 0),输出 *
  • 如果该格子没有星星(亮度值 = 0),输出其周围 8 个方向上最亮星星的亮度值。如果周围没有星星,输出 0
4 5
0 0 0 0 0
0 3 0 5 0
0 0 0 0 0
0 0 7 0 0
3 3 5 5 5
3 * 5 * 5
3 7 7 7 5
0 7 * 7 0

样例解释

  • 以第 1 行第 1 列(值为 0)为例,其周围 8 个方向中最亮的星星是第 2 行第 2 列的亮度 3,所以输出 3。
  • 以第 4 行第 1 列(值为 0)为例,其周围只有第 4 行第 3 列的亮度 7,所以输出 7。

数据范围与提示

1n,m1000亮度值100001 ≤ n, m ≤ 100,0 ≤ 亮度值 ≤ 10000。