結果
問題 |
No.228 ゆきこちゃんの 15 パズル
|
ユーザー |
![]() |
提出日時 | 2015-08-25 15:00:59 |
言語 | Python2 (2.7.18) |
結果 |
AC
|
実行時間 | 10 ms / 5,000 ms |
コード長 | 743 bytes |
コンパイル時間 | 52 ms |
コンパイル使用メモリ | 7,040 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-07-18 13:20:38 |
合計ジャッジ時間 | 991 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 17 |
ソースコード
def move(): r0, c0 = 0, 0 dx = [1, 0, -1, 0] dy = [0, 1, 0, -1] for i in range(4): for j in range(4): if A[i][j] == 0: r0, c0 = i, j for (r, c) in [(r0+dy[i], c0+dx[i]) for i in range(4) if 0 <= r0+dy[i] and r0+dy[i] < 4 and 0 <= c0+dx[i] and c0+dx[i] < 4]: pos = r0 * 4 + c0 + 1 if A[r][c] == pos: A[r][c], A[r0][c0] = 0, pos move() def acceptable(): for i in range(4): for j in range(4): if A[i][j] != (i * 4 + j + 1) % 16: return "No" return "Yes" A = [map(int, raw_input().split()) for i in range(4)] r, c = 0, 0 move() print(acceptable())