AcWing 5042. 病毒
原题链接
中等
作者:
Myang
,
2025-04-04 21:04:11
· 广东
,
所有人可见
,
阅读 2
python 代码
from collections import deque
n,m = map(int,input().split())
k = int(input())
v = list(map(int,input().split()))
dist = [[float('inf') for i in range(m + 1)] for j in range(n + 1)]
vir = []
for i in range(0,2 * k,2):
vir.append((v[i],v[i + 1]))
dist[v[i]][v[i + 1]] = 0
dx = [1,-1,0,0]
dy = [0,0,1,-1]
def bfs():
q = deque()
for u in vir:
q.append(u)
while q:
t = q.popleft()
for i in range(4):
x = t[0] + dx[i]
y = t[1] + dy[i]
if x < 1 or x > n or y < 1 or y > m:
continue
if dist[x][y] > dist[t[0]][t[1]] + 1:
dist[x][y] = dist[t[0]][t[1]] + 1
q.append((x,y))
bfs()
res = 0
res_x,res_y = 1,1
for i in range(1,n + 1):
for j in range(1,m + 1):
if dist[i][j] > res:
res = dist[i][j]
res_x,res_y = i,j
print(res_x,res_y)