loj#P6214. 「美团 CodeM 决赛」jump

「美团 CodeM 决赛」jump

题目描述

在一个 n×3n\times 3 的棋盘上跳马,即从 (x,y)(x,y) 可以跳到八个格子:

  • (x2,y+1)(x-2,y+1)
  • (x2,y1)(x-2,y-1)
  • (x1,y+2)(x-1,y+2)
  • (x1,y2)(x-1,y-2)
  • (x+1,y+2)(x+1,y+2)
  • (x+1,y2)(x+1,y-2)
  • (x+2,y+1)(x+2,y+1)
  • (x+2,y1)(x+2,y-1)

求一条汉密尔顿回路,即从任意一个位置出发,经过所有的位置恰好一次,并且最后回到起始位置的路径。如果不存在解,则输出 No solution!

输入格式

一行,一个整数nn

输出格式

假如无解,输出一行,No solution!

否则输出 3n+13n+1 行,每行输出两个空格隔开的整数 x,yx,y1xn,1y31\leq x\leq n,1\leq y\leq 3),依次表示汉密尔顿回路经过的格子,输出的相邻两个要求能够互相到达,且第一个格子和最后一个格子必须相同。

12
1 1
2 3
3 1
1 2
3 3
4 1
2 2
4 3
5 1
6 3
8 2
10 1
12 2
10 3
11 1
12 3
10 2
12 1
11 3
9 2
7 1
5 2
7 3
8 1
6 2
8 3
9 1
11 2
9 3
7 2
5 3
6 1
4 2
2 1
1 3
3 2
1 1

数据范围与提示

n1000n\le 1000