import pprint r,c=map(int,input().split()) b=[] for x in range(c): b.append(list(input())) _=input() d=[(1,0),(0,1),(-1,0),(0,-1)] node=[] vis=set() for x in range(c): for y in range(r): if b[x][y]=='@': node.append((x,y)) vis.add((x,y)) break else: continue break step=1 def bfs(): global step while node: size=len(node) for i in range(size): x=node[0][0] y=node[0][1] node.remove((x,y)) for m,n in d: if 0<=x+m<c and 0<=y+n<len(b[x+m]) and (x+m,y+n) not in vis and b[x+m][y+n]!="#": if y+n>=c: continue step+=1 node.append((x+m,y+n)) vis.add((x+m,y+n)) bfs() print(step)
最后一个样例:
16 16 ....#.......##.. ....##......##.. ....#.......#... ...##.......#... ....@.........## ..............## ##....##....##.. #...........##.. #............... .#..#.##........ ##.............. .........#..#### .................. ........#######. .#..#.##........ .#..#.## 0 0
0.0分
0 人评分