N이 5의 배수인 N×N 판에서 낙타 말의 닫힌 투어를 구성하여 방문 순서를 출력하거나 불가능하면 NO를 출력한다.
어려움8그리디구현수학시뮬레이션아직 제출이 없습니다시간 제한2초메모리 제한512 MB새로운 체스 기물 camel-tone의 이동을 정의한다. 이 기물은 상하좌우로 두 칸을 뛰어넘어 세 칸을 이동하거나, 대각선으로 한 칸을 뛰어넘어 두 칸을 이동한다. 즉, (r,c)에 있는 기물은 보드 안에 있는 (r±3,c), (r,c±3), (r±2,c±2) 가운데 한 칸으로 이동할 수 있다. 가능한 이동은 모두 8가지이다.
보드는 N×N 칸으로 이루어진 정사각형이며, N은 항상 5의 배수이다.
기물은 왼쪽 위 모서리 칸(1행 1열)에서 시작한다. 보드의 모든 칸을 정확히 한 번씩 방문하는 이동 수열을 만들고, N2−1번 이동한 뒤에는 시작 칸에서 한 번의 이동으로 돌아올 수 있어야 한다. 이러한 닫힌 투어를 camel-tone cycle이라고 한다.
가능한 투어를 하나 찾아내는 프로그램 camel을 작성하거나, 순환이 불가능함을 보고하라.
표준 입력에서 한 줄을 읽는다. 정수 N 하나만 포함한다.
표준 출력에 다음 중 하나를 작성한다.
순환이 불가능하다고 판단되면, 한 줄에 메시지 NO를 출력한다.
그 외의 경우, N줄을 출력한다. 각 줄에는 N개의 정수를 공백으로 구분하여 적는다. 이 정수들은 1부터 N2까지의 서로 다른 수이다. 첫 줄의 첫 수는 1이다. 출력은 보드를 나타내며, 각 정수는 해당 칸을 방문한 순서를 뜻한다. 연속된 두 수가 적힌 칸은 기물의 이동으로 이어져야 하고, N2가 적힌 칸도 1이 적힌 시작 칸에서 한 번의 이동으로 닿을 수 있어야 한다.
출력의 숫자는 방문 순서를 뜻한다. k와 k+1이 적힌 두 칸은 항상 기물의 이동만큼 떨어져 있어야 하며, N2와 1이 적힌 두 칸도 마찬가지이다. 시작 칸은 항상 왼쪽 위 모서리이며, 그 값은 1이다.