수열 만들기

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

요약
합이 N의 배수인 부분 배열의 개수가 정확히 N개가 되도록, N 이하의 음이 아닌 정수로 이루어진 길이 N 수열을 만들거나 존재하지 않으면 -1을 출력한다.
난이도

어려움10점 중 8점

유형
수학, 누적 합, 조합론, 그리디
정답자
아직 제출이 없습니다

문제

수열의 길이 NN이 주어졌을 때, 아래 조건을 만족하는 수열 AA를 구해보자. 단, 수열의 원소는 NN보다 작거나 같은 음이 아닌 정수여야 한다.

A_l+A_l+1+⋯+A_r−1+A_rA\_l + A\_{l + 1} + \cdots + A\_{r - 1} + A\_r의 값이 NN의 배수인 구간 \[l,r]\[l, r] (1≤l≤r≤N)\left(1 \leq l \leq r \leq N\right)의 개수가 정확히 NN개이다.

입력

첫째 줄에 수열의 길이 NN이 주어진다. (1≤N≤200,000)\left(1\leq N\leq 200,000\right)

출력

조건을 만족하는 수열의 원소를 순서대로 공백으로 구분하여 출력한다. 만약, 조건을 만족하는 수열이 존재하지 않는다면 -1을 출력한다. 조건을 만족하는 수열이 여러 가지라면 아무거나 출력한다.

예제2

  1. 예제 1

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

    입력
    5
    
    예상 출력
    -1