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

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

간단한 수학 문제

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

요약
1부터 N까지의 값만 쓰는 길이 K 배열 중, 각 i가 등장하는 위치가 i-1들을 좌우로 같은 개수만큼 나누는 조건을 만족하는 X번째 사전순 배열을 구하거나, 없으면 -1을 출력한다.
난이도

보통10점 중 6점

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

문제

다음 조건들을 만족하며 1,2,…,N1, 2, \dots, N 외의 원소를 포함하지 않는 길이 KK의 배열들 중 사전 순으로 XX번째인 것을 구해보자.

  • 각 i=2,3,…,Ni = 2, 3, \dots, N에 대해 모든 ii는 배열에서 자신의 앞에 등장하는 i−1i-1의 개수와 자신의 뒤에 등장하는 i−1i-1의 개수가 같아야 한다.
  • 1,2,…,N1, 2, \dots, N이 각각 적어도 한 번 등장하여야 한다.

입력

첫 번째 줄에 N,K,XN, K, X가 공백으로 구분되어 입력된다. (1≤N,K≤1051 \le N, K \le 10^5, 1≤X≤10181 \le X \le 10^{18})

출력

조건을 만족하는 수열 중 사전 순으로 XX번째인 수열을 출력한다. 조건을 만족하는 수열이 없는 경우, −1-1을 출력한다.

예제1

  1. 예제 1

    입력
    7 13 1
    
    예상 출력
    1 2 3 4 5 6 7 6 5 4 3 2 1