九位勇士组成一个3*3的阵型去屠龙,但是这个阵型的要求很奇特,要九个人按照强弱依次编号1~9,且阵型中每行、每列、每条长对角线上的数字和都为15,这样才能使龙对勇士和阵型收到的损害最小。
九位勇士已编好了号并站好了位置,例如:
7 8 9
1 2 3
4 5 6
每一次交换都可以将相邻的两位勇士(也就是编号……)交换位置,例如:
7 9 8
1 2 3 (8与9交换)
4 5 6
或
7 8 9
4 2 3 (4与1交换)
1 5 6
但不能
7 8 9
5 2 3 (1与5交换)
4 1 6
求最少的交换次数,使得九位勇士能在最短的时间内以最安全的阵型去屠龙。
设想了许多的阵型,运用10组阵型(测试点),每组50个……检验算法是否OK!
输入数据一共3*50行,每个数据中用3*3的9个不同的1~9的数字表示初始状态。
样例却只给了几个阵型。
每行一个数,即对应的初始阵型到所需阵型所需最少的交换次数,如果无解,输出-1。
测试点5s限制