고정점 순열
시간 제한1초메모리 제한512 MB
1부터 n까지의 순열 중 고정점이 정확히 m개인 것들을 사전순으로 나열했을 때 k번째 순열을 구하고, 그런 순열이 k개 미만이면 -1을 출력한다.
문제
크기 n인 순열은 1부터 n까지의 정수가 각각 정확히 한 번씩 나타나는 정수 리스트 (p1, p2, ..., pn)이다.
순열의 고정점 개수는 pi = i인 인덱스 i의 개수이다.
세 수 n, m, k가 주어질 때, 고정점이 정확히 m개인 크기 n의 순열 중 사전순으로 k번째로 작은 순열을 구하라. 조건을 만족하는 순열이 k개보다 적으면 -1을 출력한다.
입력
한 줄에 공백으로 구분된 세 정수
n (1 ≤ n ≤ 50) m (0 ≤ m ≤ n) k (1 ≤ k ≤ 1018)
가 주어진다. n은 순열의 크기, m은 원하는 고정점의 개수이며, 출력은 1부터 n까지의 수로 이루어진 순열 중 고정점이 정확히 m개인 것들 가운데 사전순으로 k번째로 작은 순열이어야 한다.
출력
원하는 순열을 공백으로 구분된 n개의 정수로 한 줄에 출력하라. 조건을 만족하는 순열이 없으면 -1을 출력한다.