結果

問題 No.3504 Insert Maze
コンテスト
ユーザー YuukunA
提出日時 2026-04-18 18:11:58
言語 Python3
(3.14.3 + numpy 2.4.4 + scipy 1.17.1)
コンパイル:
python3 -mpy_compile _filename_
実行:
python3 _filename_
結果
TLE  
実行時間 -
コード長 757 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 483 ms
コンパイル使用メモリ 20,828 KB
実行使用メモリ 23,204 KB
最終ジャッジ日時 2026-04-18 18:12:54
合計ジャッジ時間 12,465 ms
ジャッジサーバーID
(参考情報)
judge1_1 / judge3_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 20 TLE * 3 -- * 62
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import sys
input = sys.stdin.readline

H, W = map(int, input().split())
C = [input().strip() for _ in range(H)]

INF = 10**18
WW = 2 * W - 1

prev2 = [INF] * WW
prev1 = [INF] * WW

for x in range(2 * H - 1):
    cur = [INF] * WW

    for y in range(WW):
        if x % 2 == 0 and y % 2 == 0 and C[x // 2][y // 2] == "#":
            continue

        v = INF

        if x == 0 and y == 0:
            v = 0
        if x:
            v = min(v, prev1[y] + 1)
        if y:
            v = min(v, cur[y - 1] + 1)
        if x >= 2 and x % 2 == 0:
            v = min(v, prev2[y] + 1)
        if y >= 2 and y % 2 == 0:
            v = min(v, cur[y - 2] + 1)

        cur[y] = v

    prev2, prev1 = prev1, cur

ans = prev1[-1]
print(-1 if ans >= INF else ans)
0