結果
| 問題 | No.228 ゆきこちゃんの 15 パズル |
| コンテスト | |
| ユーザー |
tnoda_
|
| 提出日時 | 2015-08-25 15:00:59 |
| 言語 | PyPy2 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 93 ms / 5,000 ms |
| コード長 | 743 bytes |
| 記録 | |
| コンパイル時間 | 138 ms |
| コンパイル使用メモリ | 77,396 KB |
| 最終ジャッジ日時 | 2025-12-03 16:24:55 |
|
ジャッジサーバーID (参考情報) |
judge5 / 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())
tnoda_