結果
| 問題 |
No.424 立体迷路
|
| ユーザー |
ヒッキープログラミングするスレ
|
| 提出日時 | 2016-09-23 00:17:36 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,949 bytes |
| コンパイル時間 | 124 ms |
| コンパイル使用メモリ | 13,056 KB |
| 実行使用メモリ | 11,136 KB |
| 最終ジャッジ日時 | 2024-11-17 15:16:24 |
| 合計ジャッジ時間 | 1,456 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 RE * 2 |
| other | AC * 11 RE * 10 |
ソースコード
h, w = list(map(int, input().split()))
sy, sx, gy, gx = list(map(int, input().split()))
b = []
for _ in range(h):
b.append(input().strip())
f = [[True] * w for _ in range(h)]
t = [[sy - 1, sx - 1]]
f[sy - 1][sx - 1] = False
while len(t) > 0:
s = []
for y, x in t:
p = int(b[y][x])
if x > 0:
q = int(b[y][x - 1])
if f[y][x - 1] and abs(p - q) < 2:
f[y][x - 1] = False
s.append([y, x - 1])
if y > 0:
q = int(b[y - 1][x])
if f[y - 1][x] and abs(p - q) < 2:
f[y - 1][x] = False
s.append([y - 1, x])
if x < w - 1:
q = int(b[y][x + 1])
if f[y][x + 1] and abs(p - q) < 2:
f[y][x + 1] = False
s.appen([y, x + 1])
if y < h - 1:
q = int(b[y + 1][x])
if f[y + 1][x] and abs(p - q) < 2:
f[y + 1][x] = False
s.append([y + 1, x])
if x > 1:
q1 = int(b[y][x - 1])
q2 = int(b[y][x - 2])
if f[y][x - 2] and p > q1 and p == q2:
f[y][x - 2] = False
s.append([y, x - 2])
if y > 1:
q1 = int(b[y - 1][x])
q2 = int(b[y - 2][x])
if f[y - 2][x] and p > q1 and p == q2:
f[y - 2][x] = False
s.append([y - 2, x])
if x < w - 2:
q1 = int(b[y][x + 1])
q2 = int(b[y][x + 2])
if f[y][x + 2] and p > q1 and p == q2:
f[y][x + 2] = False
s.append([y, x + 2])
if y < h - 2:
q1 = int(b[y + 1][x])
q2 = int(b[y + 2][x])
if f[y + 2][x] and p > q1 and p == q2:
f[y + 2][x] = False
s.append([y + 2, x])
t = s
if f[gy - 1][gx - 1] == False:
break
print('NO' if f[gy - 1][gx - 1] else 'YES')
ヒッキープログラミングするスレ