結果
| 問題 |
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 |
ソースコード
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")
ntuda