結果
問題 | No.2412 YOU Grow Bigger! |
ユーザー |
![]() |
提出日時 | 2023-08-11 22:29:37 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 236 ms / 6,000 ms |
コード長 | 1,706 bytes |
コンパイル時間 | 154 ms |
コンパイル使用メモリ | 82,336 KB |
実行使用メモリ | 77,500 KB |
最終ジャッジ日時 | 2024-11-21 08:44:03 |
合計ジャッジ時間 | 4,155 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 29 |
ソースコード
#############################################################import syssys.setrecursionlimit(10**7)from heapq import heappop,heappushfrom collections import deque,defaultdict,Counterfrom bisect import bisect_left, bisect_rightfrom itertools import product,combinations,permutationsfrom math import sin,cos#from math import isqrt #DO NOT USE PyPyipt = sys.stdin.readlineiin = lambda :int(ipt())lmin = lambda :list(map(int,ipt().split()))#############################################################H,W = lmin()T = [list(input()) for _ in range(H)]st = [(1,1)]d = []for i in range(-1,2):for j in range(-1,2):if i|j == 0:continued.append((i,j))def func(S):st = [(1,1)]visited = [[0]*W for _ in range(H)]while st:i,j = st.pop()if i == H-2 and j == W-2:return Truefor di,dj in d:ni = di+inj = dj+jif 1<=ni<H-1 and 1<=nj<W-1:if visited[ni][nj]:continuevisited[ni][nj] = 1g = 0for ii in range(-1,2):for jj in range(-1,2):if S[ni+ii][nj+jj] == "#":g = 1if g == 0:st.append((ni,nj))return Falseif not func(T):print(0)exit()for i in range(H):for j in range(W):if i <= 2 and j <= 2:continueif i >= H-3 and j >= W-3:continueif T[i][j] == ".":T[i][j] = "#"if not func(T):print(1)exit()T[i][j] = "."print(2)