아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

블록

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

요약
비어 있는 칸을 이용해 인접한 블록 두 개씩 옮겨 A N개와 B N개를 각각 연속된 구간으로 모으는 최소 이동 순서를 출력합니다.
난이도

어려움10점 중 8점

유형
시뮬레이션, 그리디, 완전 탐색
정답자
아직 제출이 없습니다

문제

1×4N1 \times 4N 크기의 격자 맨 오른쪽 2N2N칸에 블록이 놓여 있다.

연속한 두 칸의 블록을 집어 연속한 두 칸의 빈 공간으로 옮길 수 있다. 이때 블록의 순서는 바뀌면 안 되고, 목적지도 연속한 두 칸이어야 한다.

블록을 최소 횟수로 옮겨 NN개의 연속한 'A' 블록과 NN개의 연속한 'B' 블록이 만들어지도록 하라. 가능한 최종 모습은 9가지다.

입력

첫 줄에 NN (3≤N≤1003 \le N \le 100)이 주어진다.

출력

블록을 옮기는 과정을 X to Y 형식으로 출력한다. 이는 XX, X+1X+1번 칸의 블록을 YY, Y+1Y+1번 칸으로 옮긴다는 뜻이다 (−2N+1≤X,Y≤2N−1-2N+1 \le X, Y \le 2N-1, X≠YX \ne Y). 답이 여러 개이면 아무거나 출력해도 된다.

예제1

  1. 예제 1

    입력
    5
    
    예상 출력
    8 to -1
    3 to 8
    6 to 3
    0 to 6
    9 to 0