結果
問題 | No.124 門松列(3) |
ユーザー |
|
提出日時 | 2022-02-28 21:50:55 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 65 ms / 5,000 ms |
コード長 | 844 bytes |
コンパイル時間 | 156 ms |
コンパイル使用メモリ | 82,436 KB |
実行使用メモリ | 77,312 KB |
最終ジャッジ日時 | 2024-07-07 01:07:57 |
合計ジャッジ時間 | 2,493 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 26 |
ソースコード
from collections import dequedef iks(a, b, c):return a != c and ((a < b > c) or (a > b < c))def main():W, H = map(int, input().split())M = [list(map(int, input().split())) for i in range(H)]Q = deque([(i, 0, 0) for i in range(11)])D = [[[None]*W for i in range(H)] for j in range(11)]for i in range(11):D[i][0][0] = 0while len(Q) > 0:b, x, y = Q.popleft()if (x, y) == (H-1, W-1):print(D[b][x][y])returnfor dx, dy in [(-1, 0), (1, 0), (0, 1), (0, -1)]:bv, r, c = M[x][y], x + dx, y + dyif 0 <= r < H and 0 <= c < W and D[bv][r][c] is None and iks(b, M[x][y], M[r][c]):D[bv][r][c] = D[b][x][y] + 1Q.append((bv, r, c))print(-1)returnif __name__ == '__main__':main()