Camel

N이 5의 배수인 N×N 판에서 낙타 말의 닫힌 투어를 구성하여 방문 순서를 출력하거나 불가능하면 NO를 출력한다.

어려움8그리디구현수학시뮬레이션아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

새로운 체스 기물 camel-tone의 이동을 정의한다. 이 기물은 상하좌우로 두 칸을 뛰어넘어 세 칸을 이동하거나, 대각선으로 한 칸을 뛰어넘어 두 칸을 이동한다. 즉, (r,c)(r, c)에 있는 기물은 보드 안에 있는 (r±3,c)(r \pm 3, c), (r,c±3)(r, c \pm 3), (r±2,c±2)(r \pm 2, c \pm 2) 가운데 한 칸으로 이동할 수 있다. 가능한 이동은 모두 8가지이다.

보드는 N×NN \times N 칸으로 이루어진 정사각형이며, NN은 항상 5의 배수이다.

기물은 왼쪽 위 모서리 칸(1행 1열)에서 시작한다. 보드의 모든 칸을 정확히 한 번씩 방문하는 이동 수열을 만들고, N21N^2 - 1번 이동한 뒤에는 시작 칸에서 한 번의 이동으로 돌아올 수 있어야 한다. 이러한 닫힌 투어를 camel-tone cycle이라고 한다.

가능한 투어를 하나 찾아내는 프로그램 camel을 작성하거나, 순환이 불가능함을 보고하라.

입력

표준 입력에서 한 줄을 읽는다. 정수 NN 하나만 포함한다.

출력

표준 출력에 다음 중 하나를 작성한다.

  • 순환이 불가능하다고 판단되면, 한 줄에 메시지 NO를 출력한다.

  • 그 외의 경우, NN줄을 출력한다. 각 줄에는 NN개의 정수를 공백으로 구분하여 적는다. 이 정수들은 11부터 N2N^2까지의 서로 다른 수이다. 첫 줄의 첫 수는 11이다. 출력은 보드를 나타내며, 각 정수는 해당 칸을 방문한 순서를 뜻한다. 연속된 두 수가 적힌 칸은 기물의 이동으로 이어져야 하고, N2N^2가 적힌 칸도 11이 적힌 시작 칸에서 한 번의 이동으로 닿을 수 있어야 한다.

제한

  • NN은 5의 배수이다.
  • 5N10005 \le N \le 1000이다.

힌트

출력의 숫자는 방문 순서를 뜻한다. kkk+1k + 1이 적힌 두 칸은 항상 기물의 이동만큼 떨어져 있어야 하며, N2N^211이 적힌 두 칸도 마찬가지이다. 시작 칸은 항상 왼쪽 위 모서리이며, 그 값은 11이다.