[b6e0OJ]流感
测试数据来自 b6e0_OJ/1012
题目描述
b6e0所在的城市突然爆发了一种流感。城市里的人可以表示为一个\(n\)行\(m\)列的矩阵,每个格子代表一个人。
一开始,其中某些人是感染的,某些人则没有感染。如果对于一个没有感染的人\((i,j)\),与他相邻(上下左右)的人中有两个及以上的感染者,那么他一定会被传染;否则一定不会。
现在,请求出在经过多少轮传染后,所有人都没有感染。
“一轮传染”定义为:对于所有没有感染的人\((i,j)\),如果它会被传染,则变为感染的状态。对于所有感染上的人,因为会被治好,所以变为没有感染的状态。
请注意传染的顺序:传染是发生在治好之前的,并且新被传染的人不会被治好。即先由感染者传染,再对原感染者染者消除感染,新感染者不会消除感染。
输入格式
第一行输入\(n\)和\(m\),表示的矩阵行数与列数。
下面输入\(n\)行,每行一个长度为\(m\)的一个字符串。若第\(i\)行第\(j\)列的字符为\(1\),说明第\(i\)行第\(j\)列的人在刚开始就被感染;否则第\(i\)行第\(j\)列的人在刚开始未被感染。
输出格式
输出所有人都没有感染的轮数。如果无法使没有人感染,输出INF。
输入输出样例1
输入
3 3
010
101
010
输出
INF
输入输出样例2
输入
2 5
01011
01000
输出
2
样例解释
第一次传染后,矩阵为:
00100
00000
第二次传染后,矩阵为:
00000
00000
所以两轮后将没有人感染。
数据范围
对于100%的数据满足,\(n,m\le100\)。
对于第1~3个测试点,\(n,m\le10\)。
对于第4~6个测试点,保证答案要么是INF,要么\(\le10\)。
对于第7~10个测试点,无特殊限制。
贡献者
题面,数据:b6e0
核题:Ducati
信息
- ID
- 1045
- 难度
- 9
- 分类
- (无)
- 标签
- 递交数
- 1
- 已通过
- 1
- 通过率
- 100%
- 上传者