結果
| 問題 | No.2412 YOU Grow Bigger! |
| コンテスト | |
| ユーザー |
detteiuu
|
| 提出日時 | 2026-07-03 23:50:53 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
AC
|
| 実行時間 | 1,435 ms / 6,000 ms |
| コード長 | 1,158 bytes |
| 記録 | |
| コンパイル時間 | 152 ms |
| コンパイル使用メモリ | 85,120 KB |
| 実行使用メモリ | 87,108 KB |
| 最終ジャッジ日時 | 2026-07-03 23:51:09 |
| 合計ジャッジ時間 | 14,405 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge1_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 29 |
ソースコード
from collections import deque
H, W = map(int, input().split())
S = [input() for _ in range(H)]
def func(h, w):
if h == 0 or h == H-1 or w == 0 or w == W-1:
return False
for dh in range(-1, 2):
nh = h+dh
for dw in range(-1, 2):
nw = w+dw
if S[nh][nw] == "#":
return False
return True
def bfs(a, b):
visited = [[False]*W for _ in range(H)]
visited[1][1] = True
que = deque()
que.append((1, 1))
while que:
h, w = que.popleft()
for dh in range(-1, 2):
nh = h+dh
for dw in range(-1, 2):
nw = w+dw
if max(abs(a-nh), abs(b-nw)) <= 1: continue
if F[nh][nw] and not visited[nh][nw]:
visited[nh][nw] = True
que.append((nh, nw))
return visited[H-2][W-2]
F = [[func(h, w) for w in range(W)] for h in range(H)]
if not bfs(-1, -1):
print(0)
exit()
flag = False
for i in range(H):
for j in range(W):
if max(i, j) <= 2 or H-3 <= i and W-3 <= j:
continue
flag |= not bfs(i, j)
print(1 if flag else 2)
detteiuu