結果
問題 | No.1638 Robot Maze |
ユーザー |
![]() |
提出日時 | 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 |
ソースコード
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")