만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

N-Queen (mod N)

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

요약
N x N 보드의 맞은편 가장자리가 이어져 있다고 할 때, 어떤 두 퀸도 서로 공격하지 못하도록 퀸 N개를 배치하는 방법 하나를 출력합니다. 배치가 불가능하면 -1을 출력합니다.
난이도

보통10점 중 6점

유형
수학, 구현
정답자
아직 제출이 없습니다

문제

N×NN \times N 체스판이 주어질 때, 퀸 NN개를 서로 공격할 수 없게 놓는 방법 한 가지를 출력하시오. rr행 cc열 칸의 좌표는 (r,c)(r, c)이며, 가장 왼쪽 위 칸은 (1,1)(1, 1), 가장 오른쪽 아래 칸은 (N,N)(N, N)이다. 체스판의 평행한 변끼리는 서로 연결되어 있다. 두 퀸의 좌표가 각각 (a,b)(a, b), (c,d)(c, d)일 때, 다음 네 조건 중 하나 이상을 만족하면 두 퀸은 서로 공격하는 상태이다. (1) a=ca = c, (2) b=db = d, (3) a+b≡c+d(modN)a+b \equiv c+d \pmod N, (4) a−b≡c−d(modN)a-b \equiv c-d \pmod N.

입력

첫 번째 줄에 정수 NN이 주어진다. (1≤N≤500 0001 \le N \le 500\,000)

출력

NN개의 퀸을 놓을 수 있다면, 첫 번째 줄에 A1A_1, A2A_2, A3A_3, ⋯\cdots, ANA_N을 출력한다. AiA_i는 ii번째 행에 있는 퀸의 열 번호이다. (1≤Ai≤N1 \le A_i \le N)

NN개의 퀸을 놓을 수 없다면 -1을 출력한다.

예제2

  1. 예제 1

    입력
    2
    
    예상 출력
    -1
    
  2. 예제 2

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