#P4020. 腐烂的橘子

腐烂的橘子

题目内容

在给定的 m×nm × n 网格 gridgrid 中,每个单元格可以有以下三个值之一:

  • 00 代表空单元格;
  • 11 代表新鲜橘子;
  • 22代表腐烂的橘子。

每分钟,腐烂的橘子 周围 44 个方向上相邻 的新鲜橘子都会腐烂。

输出 直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 1-1

输入描述

  • 第一行两个整数n,mn,m
  • 接下来有nn行,每行mm列,表示网格,每行里的数字以空格分隔。

输出描述

一个整数,表示答案。

样例1

image

输入

3 3
2 1 1
1 1 0
0 1 1

输出

说明

样例2

输入

3 3
2 1 1
0 1 1
1 0 1

输出

-1

说明

左下角的橘子(第 22 行, 第0 0 列)永远不会腐烂,因为腐烂只会发生在 44 个方向上

样例3

输入

1 2
0 2

输出

说明

因为0 0 分钟时已经没有新鲜橘子了,所以答案就是 00

提示

  • m==grid.lengthm == grid.length
  • n==grid[i].lengthn == grid[i].length
  • 1<=m,n<=101 <= m, n <= 10
  • grid[i][j]grid[i][j] 仅为 0、1 或 2