만드는 중입니다

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

NL-Queen (mod N)

시간 제한2초메모리 제한1024 MB

요약
가장자리가 서로 이어진 N×N 체스판에 퀸 N개를 서로 공격하지 않게 놓고, k-선형이 아닌 배치 하나를 출력합니다. 불가능하면 -1을 출력합니다.
난이도

어려움10점 중 8점

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

문제

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개가 서로 공격하지 않는 배치에서 ii번째 행에 있는 퀸의 열 번호를 AiA_i라 하자. 정수 kk가 모든 ii에 대해 A(i mod N)+1−Ai≡k(modN)A_{(i \bmod N) + 1} - A_i \equiv k \pmod N을 만족하면 이 배치는 kk-선형이라고 한다. 모든 정수 kk에 대해 kk-선형이 아니면 이 배치를 특별하다고 한다.

입력

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

출력

NN개의 퀸을 놓을 수 있다면, 첫 번째 줄에 A1,A2,A3,⋯ ,ANA_1, A_2, A_3, \cdots, A_N을 출력한다. (1≤Ai≤N1 \le A_i \le N)

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

예제3

  1. 예제 1

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

    입력
    5
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    25
    
    예상 출력
    7 1 3 13 20 4 14 16 23 2 15 8 6 24 12 18 22 5 10 21 9 25 17 19 11