题目描述
Mister No(真名杰瑞·德雷克)是一个漫画人物,他经常陷入各种麻烦,但通常都能设法脱身。然而这一次,情况没那么简单。他在寻找古代玛雅宝藏的过程中,意外发现了一座失落的神庙。神庙内有一间宽敞的大厅,大厅中央矗立着一根刻有铭文的石制图腾柱,而这些铭文正是理解生命意义的关键(42)。但要到达这根图腾柱,却面临着巨大的挑战。
图腾柱位于大厅入口正对面。大厅地面铺满了石砖,这些石砖看起来很像多米诺骨牌:每块砖被分为左右两个半块(方格),每个半块上刻有一个1到6之间的数字。石砖排列成N行,其中奇数行有N块砖,偶数行有N-1块砖。如下图所示为第一个测试样例(N = 5):
只有当两块相邻石砖共享边的半块上数字相同时,才能从一块砖走到另一块。请帮助Mister No找到通往图腾柱的最短路径,即确定需要依次踩踏的石砖序列(输出如下所述的石砖标签序列)。如果无法到达图腾柱,则找出通往编号最大的石砖的最短路径(以便Mister No可以完成一次英勇的跳跃)。
石砖按行优先顺序编号:第一行中,第一块砖编号为1,最后一块为N;第二行中,第一块为N+1,最后一块为2×N−1,依此类推。入口通向编号为1的石砖,图腾柱位于最后一行的最后一块砖上。Mister No始终从入口开始行动。
输入格式
第一行输入包含正整数N(1 ≤ N ≤ 500),表示石砖的行数。
接下来的N×N − N//2行(“//”表示整数除法),每行包含两个正整数Ai和Bi(1 ≤ Ai, Bi ≤ 6),分别表示第i块砖左半和右半上刻的数字。
输出格式
第一行输出所需最短路径的长度(以砖块数量计)。
第二行输出一个由空格分隔的正整数序列,表示最短路径上各砖块的标签。若存在多条最短路径,输出任意一条即可。