5769: Knight

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:31 Solved:26

Description

国际象棋为许多令人着迷的娱乐提供了固定的框架,这些框架独立于游戏本身。其中很多都是基于奇异的骑士“L型”(L-shaped)移动。一个经典的例子就是骑士巡游(knight's tour)问题。

  编写程序求解骑士巡游问题:在n行m列的棋盘上,输出一位骑士(按象棋中“马走日”的行走法)从(1,1)开始,遍历棋盘的顺序。

骑士的八种跳法用以下常量数组表示(表示每跳一步在行和列上的变化量):

const 

      dx:array [1..8] of integer=(-2,-1,1,2,2,1,-1,-2);

      dy:array [1..8] of integer=(1,2,2,1,-1,-2,-2,-1);

Input

输入两个数n,m表示棋盘为n行m列。

Output

输出一个n行m列的矩阵,每个数之间用空格隔开,行尾无空格;第I行,第J列的数C,表示骑士在第C步时位于第I行,第J列。

Sample Input Copy

5 5

Sample Output Copy

1 20 17 12 3
16 11 2 7 18
21 24 19 4 13
10 15 6 23 8
25 22 9 14 5