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

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

흥미로운 부분 구간

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

요약
길이 n의 배열을 0, 1, 2로만 채워 합이 3으로 나누어떨어지는 부분 구간이 정확히 k개가 되도록 하며, 사전순으로 가장 작은 배열을 구합니다. 불가능하면 -1을 출력합니다.
난이도

어려움10점 중 8점

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

문제

배열의 부분 구간(연속된 부부분 배열)은 구간에 속한 값의 합이 33으로 나누어 떨어지면 흥미롭다고 합니다.

두 정수 nn과 kk가 주어집니다. 0, 1, 2로만 이루어진 길이 nn의 배열 중에서 흥미로운 부분 구간이 정확히 kk개인 배열을 사전순으로 가장 작게 만드세요.

같은 길이의 배열 aa가 배열 bb보다 사전순으로 작다는 것은, 1≤i≤n1 \le i \le n인 어떤 ii가 존재하여 j<ij < i인 모든 jj에 대해 aj=bja_j = b_j이고 ai<bia_i < b_i인 경우를 말합니다. 두 부분 구간은 한쪽에만 속한 원소가 있으면 서로 다른 구간입니다.

입력

첫 번째 줄에 두 정수 nn과 kk가 주어집니다 (1≤n≤1061 \le n \le 10^6, 0≤k≤10180 \le k \le 10^{18}).

출력

조건을 만족하는 배열이 없으면 −1-1을 출력합니다. 그렇지 않으면 조건을 만족하는 사전순 최소 배열을 길이 nn으로 출력합니다.

예제2

  1. 예제 1

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

    입력
    5 5
    
    예상 출력
    -1