結果

問題 No.1638 Robot Maze
ユーザー ntuda
提出日時 2025-01-11 13:17:31
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 112 ms / 2,000 ms
コード長 1,023 bytes
コンパイル時間 1,792 ms
コンパイル使用メモリ 82,336 KB
実行使用メモリ 76,808 KB
最終ジャッジ日時 2025-01-11 13:17:38
合計ジャッジ時間 5,282 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 49
権限があれば一括ダウンロードができます

ソースコード

diff #

from heapq import *
H, W = map(int, input().split())
U,D,R,L,K,P = map(int,input().split())
xs,ys,xg,yg = map(int,input().split())
xs -= 1
ys -= 1
xg -= 1
yg -= 1
S = [input() for _ in range(H)]
dir = ((D,(1, 0)), (R,(0, 1)), (L,(0, -1)), (U,(-1, 0)))

q = [(0, xs,ys)]
cnt = 0
D2 = [[K + 1] * W for _ in range(H)]

def dijkstra():
    D2[xs][ys] = 0
    q = [(0,xs,ys)]
    while q:
        d, x,y = heappop(q)
        if d > D2[x][y]: continue
        for dd,(xd,yd) in dir:
            x1 = x + xd
            y1 = y + yd
            if 0 <= x1 < H and 0 <= y1 < W:
                if S[x1][y1] == ".":
                    if D2[x1][y1] > d + dd:
                        D2[x1][y1] = d + dd
                        heappush(q, (D2[x1][y1],x1,y1))
                elif S[x1][y1] == "@":
                    if D2[x1][y1] > d + P + dd:
                        D2[x1][y1] = d + P + dd
                        heappush(q, (D2[x1][y1],x1,y1))
    return

dijkstra()
if D2[xg][yg] <= K:
    print("Yes")
else:
    print("No")
0