#1. 설계 및 풀이
# 경쟁적 전염
# 설계
'''
1. 바이러스를 번호순으로 큐에 넣는다. (x, y, 번호, sec)
2. 큐에서 하나씩 꺼내서 바이러스가 전염될 수 있으면 sec+1한 값을 큐에 넣는다.
3. sec이 s인 경우 break
4. 답 출력
'''
import sys
from collections import deque
input = sys.stdin.readline
n, k = map(int, input().strip().split())
area = [list(map(int, input().strip().split())) for _ in range(n)]
s, x, y = map(int, input().strip().split())
x -=1
y -=1
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
q = deque()
# 바이러스를 번호순으로 큐에 넣기
for i in range(n) :
for j in range(n) :
if area[i][j] > 0 :
q.append((i, j, area[i][j], 0))
### 주의! sorted는 정렬된 리스트를 반환하므로 deque() 처리후 대입해줘야한다.
q = deque(sorted(q, key=lambda x : x[2]))
while q :
r, c, num, sec = q.popleft()
if sec == s :
break
for dir in range(4) :
nr, nc = r + dx[dir], c + dy[dir]
if 0 <= nr < n and 0 <= nc < n :
if area[nr][nc] == 0 :
area[nr][nc] = num
q.append((nr, nc, num, sec+1))
print(area[x][y])
#2. 개선할 점
로직은 맞는 것 같은데 자꾸 틀려서 왜틀렸나했더니
sorted를 사용만하고 대입을 안해줘서 틀린거였다 .............
다신 이런 실수 하지말자 !
댓글