結果
| 問題 | No.228 ゆきこちゃんの 15 パズル | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2018-07-27 08:49:27 | 
| 言語 | Python2 (2.7.18) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 12 ms / 5,000 ms | 
| コード長 | 501 bytes | 
| コンパイル時間 | 244 ms | 
| コンパイル使用メモリ | 7,040 KB | 
| 実行使用メモリ | 6,944 KB | 
| 最終ジャッジ日時 | 2024-07-01 03:30:20 | 
| 合計ジャッジ時間 | 1,147 ms | 
| ジャッジサーバーID (参考情報) | judge5 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 17 | 
ソースコード
#yuki228
def around(pos):
 ls=[]
 if pos>=4:
  ls.append(pos-4)
 if pos<=11:
  ls.append(pos+4)
 if pos%4!=0:
  ls.append(pos-1)
 if pos%4!=3:
  ls.append(pos+1)
 return ls
def check(ls):
 pos=ls.index('0')
 g=goal[pos]
 for p in around(pos):
  if ls[p]==g:
   ls[p],ls[pos]=ls[pos],ls[p]
   return True
 return False
ls=[]
for i in xrange(4):
 ls+=raw_input().split()
goal=[str((i+1)%16) for i in range(16)]
while True:
 if ls==goal:
  print 'Yes'
  break
 if not check(ls):
  print 'No'
  break
            
            
            
        