#A. 八数码

    传统题 2000ms 512MiB

八数码

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

dash最近迷上了一个叫八数码的游戏,如下图 11,在 3×33 \times 3 的棋盘上,摆有八个棋子,每个棋子上标有 1188 的某一数字。棋盘中留有一个空格,空格用 00 来表示。空格周围的棋子可以移动空格中。

image-20241025152345482

游戏的目标是通过棋子的移动使 88 个棋子到达图 22 的布局。

在上面的图 11 中,我们可以把 55 向上移,然后再将 88 向左移动后达成游戏目标变成图 22 的布局,完成这局游戏最少需要 22 步。

dash知道你是个编程高手,希望你编写一个程序计算完成每一局游戏的最少步数。

输入格式

第一行,一个整数 nn,表示游戏的局数。

接下来的 nn 行,每行一个字符串,对应一个初始的游戏布局。(每个字符串中含有数字字符 080\sim 811 个, 00 表示空格,如图 11 的布局可以记录为 123406758123406758

输出格式

nn 行,每行一个整数,代表每局游戏所需的最少步数。

注意,有的游戏初始布局,无论进行多少次操作也没有办法到达目标,此时请输出 1-1

样例

2
123406758
283104765
2
-1

解释#1

第一局:第 11 步,将第三行的 55 向上移动;第 22 步,将第三行的 88 向左移动就可以完成游戏;答案为 22

第二局:这个布局无论进行多少次操作都没有办法达到游戏目标,输出 1-1

数据范围

1n101\le n\le 10

2025/1/8 每日赏金题【Div. 1】

未认领
状态
已结束
题目
1
开始时间
2025-1-7 21:00
截止时间
2025-1-8 23:59
可延期
24 小时