# # 1,0,1,0,0,0,1,0,1 # 2 # # 0,0,0,0 # -1 # 一行N*N个数字只包含0 1,不会有其他数字, # 0表示未感染,1表示感染, # 输出一个整数,表示经过多少天后全部感染 import math def main(): map_string = input() solve_method(map_string) def solve_method(map_string): split = map_string.split(",") n = int(math.sqrt(len(split))) ints = [[0 for _ in range(n)] for _ in range(n)] k = 0 for i in range(n): for j in range(n): ints[i][j] = int(split[k]) k += 1 day = 0 while check(ints): # 找到所有感染位点 virus = [] for i in range(n): for j in range(n): x = ints[i][j] if x == 1: pos = [i, j] virus.append(pos) # 感染 for pos in virus: infect(ints, pos[0], pos[1]) day += 1 day = -1 if day == 0 else day print(day) POS = [[0, -1], [0, 1], [-1, 0], [1, 0]] def infect(ints, x, y): n = len(ints) for p in POS: x1 = x + p[0] x1 = min(n - 1, max(x1, 0)) y1 = y + p[1] y1 = min(n - 1, max(y1, 0)) ints[x1][y1] = 1 def check(ints): sum = 0 n = len(ints) for arr in ints: for j in range(n): sum += arr[j] return sum != 0 and sum != n * n # 1,0,1,0,0,0,1,0,1 # 2 if __name__ == '__main__': main()