#P2111. Millenium Leapcow

Millenium Leapcow

描述

奶牛们修改了它们的“跳牛”游戏。现在它们在一片巨大的牧场上进行游戏,牧场上标记了一个NNNN列的网格(3N3653 \leq N \leq 365),看起来非常像一个棋盘。

以下是它们为新“跳牛”游戏设置棋盘的方式:

  • 首先,奶牛们准备了N×NN \times N张纸片,每张纸片上写一个从11N×NN \times N的整数。
  • 其次,“数字牛”将这些纸片按照它选择的顺序放置在N×NN \times N的方格中。

其余的每头奶牛会尝试在游戏中最大化自己的得分:

  • 首先,它选择一个起始方格,并记录该方格的数字。
  • 然后,它像国际象棋中的“马”一样,跳到一个数字更大的方格。如果它跳得特别远,就称为“飞跃”;否则称为“行走”。
  • 它会继续以“马”的走法跳到数字更大的方格,直到无法再移动为止。

每访问一个方格,参赛者得11分。得分最高的奶牛将赢得比赛。

请帮助奶牛们找出最佳的游戏策略。

输入

  • 11行:一个整数,表示棋盘的大小NN
  • 22行及后续行:这些行包含空格分隔的整数,表示棋盘的内容。前NN行(从输入文件的第22行开始)代表棋盘的第一行;接下来的NN行代表第二行,依此类推。若N>15N > 15,则每行会被分成连续的1515个数字一组,剩余部分另起一行。每新一行从单独的行开始。

输出

  • 11行:一个整数,表示获胜奶牛的得分WW
  • 22行到第W+1W+1行:每行输出一个整数,表示获胜奶牛从起始方格开始,依次访问的方格数字。如果存在多条得分最高的路径,则输出“最小”的路径(按字典序比较路径中的数字)。

输入样例 1

4  
1 3 2 16  
4 10 6 7  
8 11 5 12  
9 13 14 15  

输出样例 1


7  
2  
4  
5  
9  
10  
12  
13  

来源
USACO 2003 美国公开赛