나이트 투어

시간 제한1초메모리 제한128 MB

요약
666까지의 N×N 체스판에서 주어진 시작 칸부터 나이트가 모든 칸을 정확히 한 번씩 방문하는 경로를 구성하거나 불가능함을 출력합니다.
난이도

어려움10점 중 8점

유형
백트래킹, 분할 정복, 그리디
정답자
아직 제출이 없습니다

문제

N × N 크기의 체스판이 있다. 여기서 6 ≤ N ≤ 666이다. 나이트 하나가 주어진 시작 위치에서 출발해, 나이트의 이동 규칙만 사용하여 체스판의 모든 칸을 정확히 한 번씩 방문하려고 한다. 이미 방문한 칸은 다시 방문할 수 없다.

입력

첫째 줄에 정수 N이 주어진다. 둘째 줄에는 시작 위치를 나타내는 두 정수 r, c가 주어진다. r은 행 번호, c는 열 번호이며 좌표는 1부터 시작한다.

출력

모든 칸을 한 번씩 방문하는 경로가 있다면, 방문한 위치를 순서대로 N × N개의 줄에 출력한다. 각 줄에는 행 번호와 열 번호를 공백으로 구분해 출력한다. 경로가 존재하지 않으면 첫째 줄에 -1 -1을 출력한다.

예제1

  1. 예제 1

    입력
    6
    1 1
    
    예상 출력
    1 1
    3 2
    5 1
    6 3
    5 5
    3 6
    2 4
    1 6
    3 5
    5 6
    4 4
    5 2
    3 1
    1 2
    3 3
    2 1
    1 3
    2 5
    4 6
    6 5
    5 3
    6 1
    4 2
    5 4
    6 6
    4 5
    6 4
    4 3
    6 2
    4 1
    2 2
    1 4
    2 6
    3 4
    1 5
    2 3