๐ ๋ฌธ์
1๋ฒ๊ณผ ๊ฐ์ ๊ทธ๋ฆผ์์ ๋ง์ฝ (2, 2)์ ํญํ์ด ๋จ์ด์ง๋ฉด, ์ํ์ข์ฐ๋ฅผ ํ์ํด์ผ ํ๋ค. (3, 2)๋ #์ด๋ฏ๋ก ์๋ฌด๊ฒ๋ ๋ํ์ง ์๋๋ค. (2, 3)์ ํญํ์ด ๋จ์ด์ง๋ฉด, ์ํ๊ฐ '@'์ธ ๊ณณ์๋ 2๋งํผ ํญํ์ ์ํฅ์ ๋ฐ๋๋ค.
โ๏ธ ์ ๋ ฅ
โ๏ธ ์ถ๋ ฅ
๐ก ํ์ด
๋ฌธ์ ์์ '์ํ์ข์ฐ'๋ฅผ ๋ณด์๋ง์ Graph ๊ฐ ์๊ฐ์ด ๋ฌ๋ค.
๋จผ์ ํญํ์ด ๋จ์ด์ง๋ฉด ์ํ์ข์ฐ๋ก ์ํฅ์ ๋ฐ๋๋ค. ๋ง์ฝ (y, x)์ ํญํ์ด ๋จ์ด์ง๋ฉด ์ํฅ์ (y-1, x), (y, x-1), (y+1, x), (y, x+1)์ ๋ฐ๋๋ค.
์ขํ๋ฅผ ์กฐ๊ธ ๋ ์ฝ๊ฒ ๊ณ์ฐํ๊ธฐ ์ํด dx = [0, 1, -1, 0, 0] , dy = [0, 0, 0, 1, -1]๋ก ํ์๋ค.
#๋ ๋ณํ๊ฐ ์๊ณ , '0'์ +1, '@'์ +2์ด๋ค. cal ํจ์์์ ์ขํ๋ฅผ ์กฐ์ ํ๊ณ ์ํฅ ๋ฐ๋ ์ขํ๋ฅผ ๋ฐ์ง๋ฉฐ ํญํ๊ฐ์ ๋ํด์ค๋ค.
๋ง์ง๋ง์ผ๋ก ์ต๋๊ฐ์ ๊ตฌํ๋ฉด ๋๋ค.
N, n = map(int, input().split())
area = [input().split() for _ in range(N)]
bomb = [[0] * N for _ in range(N)] #ํญํ๊ฐ์ ๊ณ์ฐํ๊ธฐ ์ํด 0์ผ๋ก ์ค์
#์ขํ๊ฐ์ ์ฝ๊ฒ ๊ตฌํ๊ธฐ ์ํจ
dx = [0, 1, -1, 0, 0]
dy = [0, 0, 0, 1, -1]
def cal (y, x) :
for i in range(5) :
ny = y + dy[i]
nx = x + dx[i]
if 0 <= nx < N and 0 <= ny < N :
if area[ny][nx] == '@' : bomb[ny][nx] += 2 #'@'์ด๋ฉด 2๋งํผ ์ํฅ์ ๋ฐ์
elif area[ny][nx] == '#' : bomb[ny][nx] += 0 #'#'์ด๋ฉด ์ํฅ์ ๋ฐ์ง ์์
else : bomb[ny][nx] += 1 #'0'์ด๋ฉด 1๋งํผ ์ํฅ์ ๋ฐ์
for i in range(n) :
y, x, = map(int, input().split())
cal(y-1, x-1)
max_bomb = -1
for i in bomb:
if max(i) > max_bomb:
max_bomb = max(i)
print(max_bomb)