結果
問題 |
No.424 立体迷路
|
ユーザー |
|
提出日時 | 2022-01-21 15:14:22 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 66 ms / 2,000 ms |
コード長 | 976 bytes |
コンパイル時間 | 282 ms |
コンパイル使用メモリ | 12,928 KB |
実行使用メモリ | 10,880 KB |
最終ジャッジ日時 | 2024-11-25 10:52:21 |
合計ジャッジ時間 | 1,972 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 21 |
ソースコード
from collections import deque h,w=map(int,input().split()) sy,sx,gy,gx=map(int,input().split()) sy-=1;sx-=1;gy-=1;gx-=1 g=[list(input()) for _ in range(h)] visit=[[False]*w for _ in range(h)] q=deque() q.append((sy,sx)) while q: y,x=q.popleft() if visit[y][x]: continue visit[y][x]=True dy=[-1,0,1,0] dx=[0,-1,0,1] for i in range(4): ny=y+dy[i] nx=x+dx[i] if not (0<=ny<h and 0<=nx<w): continue if abs(int(g[ny][nx])-int(g[y][x]))>1: continue if visit[ny][nx]: continue q.append((ny,nx)) dy2=[-2,0,2,0] dx2=[0,-2,0,2] for i in range(4): ny2=y+dy2[i] nx2=x+dx2[i] if not (0<=ny2<h and 0<=nx2<w): continue if int(g[ny2][nx2])!=int(g[y][x]): continue if int(g[(ny2+y)//2][(nx2+x)//2])>int(g[y][x]): continue q.append((ny2,nx2)) print('YES' if visit[gy][gx] else 'NO')