結果
| 問題 |
No.228 ゆきこちゃんの 15 パズル
|
| コンテスト | |
| ユーザー |
matsu7874
|
| 提出日時 | 2015-11-29 17:58:46 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 36 ms / 5,000 ms |
| コード長 | 1,561 bytes |
| コンパイル時間 | 87 ms |
| コンパイル使用メモリ | 12,800 KB |
| 実行使用メモリ | 11,136 KB |
| 最終ジャッジ日時 | 2024-09-14 05:10:12 |
| 合計ジャッジ時間 | 1,496 ms |
|
ジャッジサーバーID (参考情報) |
judge6 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 17 |
ソースコード
import collections
A = []
for i in range(4):
A += list(map(int, input().split()))
# print(A)
dq = collections.deque()
dq.append([[False] * 16, A[:]])
while dq:
moved, puzzle = dq.popleft()
# print(puzzle,moved)
if puzzle == [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0]:
print('Yes')
exit()
zero = puzzle.index(0)
if zero >= 4:
t = puzzle[zero - 4]
if not moved[t]:
next_puzzle = puzzle[:]
next_puzzle[zero] = t
next_puzzle[zero - 4] = 0
next_moved = moved[:]
next_moved[t] = True
dq.append([next_moved, next_puzzle])
if zero % 4 > 0:
t = puzzle[zero - 1]
if not moved[t]:
next_puzzle = puzzle[:]
next_puzzle[zero] = t
next_puzzle[zero - 1] = 0
next_moved = moved[:]
next_moved[t] = True
dq.append([next_moved, next_puzzle])
if zero < 12:
t = puzzle[zero + 4]
if not moved[t]:
next_puzzle = puzzle[:]
next_puzzle[zero] = t
next_puzzle[zero + 4] = 0
next_moved = moved[:]
next_moved[t] = True
dq.append([next_moved, next_puzzle])
if zero % 4 < 3:
t = puzzle[zero + 1]
if not moved[t]:
next_puzzle = puzzle[:]
next_puzzle[zero] = t
next_puzzle[zero + 1] = 0
next_moved = moved[:]
next_moved[t] = True
dq.append([next_moved, next_puzzle])
print('No')
matsu7874