結果
| 問題 |
No.1638 Robot Maze
|
| コンテスト | |
| ユーザー |
👑 SPD_9X2
|
| 提出日時 | 2021-08-06 21:46:33 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 141 ms / 2,000 ms |
| コード長 | 836 bytes |
| コンパイル時間 | 187 ms |
| コンパイル使用メモリ | 82,496 KB |
| 実行使用メモリ | 77,228 KB |
| 最終ジャッジ日時 | 2024-09-17 01:40:09 |
| 合計ジャッジ時間 | 5,708 ms |
|
ジャッジサーバーID (参考情報) |
judge6 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 49 |
ソースコード
import sys
from sys import stdin
import heapq
H,W = map(int,stdin.readline().split())
U,D,R,L,K,P = map(int,stdin.readline().split())
xs,ys,xg,yg = map(int,stdin.readline().split())
xs -= 1
ys -= 1
xg -= 1
yg -= 1
C = [stdin.readline()[:-1] for i in range(H)]
d = [[float("inf")] * W for i in range(H)]
q = [(0,xs,ys)]
d[xs][ys] = 0
while q:
sc,x,y = heapq.heappop(q)
if d[x][y] != sc:
continue
for nx,ny,cost in [(x-1,y,U),(x+1,y,D),(x,y-1,L),(x,y+1,R)]:
if not (0 <= nx < H and 0 <= ny < W):
continue
if C[nx][ny] == "#":
continue
if C[nx][ny] == "@":
cost += P
if d[nx][ny] > sc + cost:
d[nx][ny] = sc + cost
heapq.heappush(q,(d[nx][ny],nx,ny))
if d[xg][yg] <= K:
print ("Yes")
else:
print ("No")
SPD_9X2