結果
| 問題 |
No.228 ゆきこちゃんの 15 パズル
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2021-02-21 19:55:54 |
| 言語 | Kuin (KuinC++ v.2021.9.17) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 5,000 ms |
| コード長 | 1,068 bytes |
| コンパイル時間 | 2,383 ms |
| コンパイル使用メモリ | 146,480 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-09-16 11:36:27 |
| 合計ジャッジ時間 | 3,028 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 17 |
ソースコード
func main()
; target
var a: [][]int :: #[4, 4]int
for i(0, 3)
for j(0, 3)
do a[i][j] :: cui@inputInt()
end for
end for
; current
var b: [][]int :: #[4, 4]int
for i(0, 3)
for j(0, 3)
do b[i][j] :: (1 + i * 4 + j) % 16
end for
end for
while(true)
if(isEqual(a, b))
do cui@print("Yes\n")
ret
end if
var flag: bool :: false
for i(0, 3)
for j(0, 3)
if(b[i][j] = 0)
var dx: []int :: [0, 1, 0, -1]
var dy: []int :: [1, 0, -1, 0]
for k(0, 3)
var x: int :: j + dx[k]
var y: int :: i + dy[k]
if(0 <= x & x <= 3 & 0 <= y & y <= 3)
if(b[y][x] = a[i][j])
do b[i][j] :: b[y][x]
do b[y][x] :: 0
do flag :: true
break i
end if
end if
end for
end if
end for
end for
if(!flag)
do cui@print("No\n")
ret
end if
func isEqual(a: [][]int, b: [][]int): bool
for i(0, 3)
for j(0, 3)
if(a[i][j] <> b[i][j])
ret false
end if
end for
end for
ret true
end func
end while
var ans: int :: 0
end func