p.345
import sys
from collections import deque
input=sys.stdin.readline
n,k=map(int, input().split())
test=[]
data=[]
for i in range(n):
test.append(list(map(int, input().split())))
for j in range(n):
if test[i][j] != 0:
# 바이러스 종류, 시간, 좌표x, 좌표y
data.append((test[i][j],0,i,j))
s,x,y=map(int, input().split())
data.sort()
q=deque(data)
dx=[-1,1,0,0]
dy=[0,0,-1,1]
while q:
virus, _s, _x, _y=q.popleft()
if _s==s: # 시간이 되면 빠져나오기
break
# 현재 위치에서 4방향 보기
for i in range(4):
_nx=_x+dx[i]
_ny=_y+dy[i]
if _nx>=0 and _ny>=0 and _ny<n and _nx<n:
if test[_nx][_ny]==0:
q.append((virus, _s+1, _nx, _ny))
test[_nx][_ny]=virus
print(test[x-1][y-1])
댓글