Weltall
시간 제한4초메모리 제한256 MB
1부터 n까지의 순열 중 정확히 k개의 고정점을 가지는 것들을 사전순으로 나열했을 때 d번째 순열을 구한다.
문제
인류 최초의 다른 은하 탐사 임무를 수행 중이다. 문제는 은하가 꽤 멀리 떨어져 있어서 시간이 아주 많다는 것이다.
그 시간을 우주선 운영에 필요한 여러 작업을 익히는 데 쓰기로 했다. 우주선에는 명의 사람이 있고, 각자 개의 서로 다른 역할 중 하나를 맡는다. 각 사람은 정확히 한 역할의 전문가이고, 각 역할에는 그 역할의 전문가가 정확히 한 명씩 있다. 사람에게 1부터 까지 번호를 매기고 역할에도 1부터 까지 번호를 매겨서, 사람 가 역할 의 전문가가 되도록 하자.
매일 모든 사람이 역할을 하나씩 맡고 모든 역할을 누군가가 수행하도록 사람을 역할에 배정해야 한다. 즉, 1과 사이 수의 순열 을 골라야 한다.
우리는 정확히 명이 자신이 전문가인 역할을 맡고(우주선이 계속 날아가도록), 나머지 명은 자신이 전문가가 아닌 역할을 맡도록(배울 수 있도록) 배정하려 한다. 다시 말해 인 위치 가 정확히 개 있어야 한다.
이런 배정은 많고, 같은 배정을 반복하면 학습이 느려지므로 비행 일째에는 사전순으로 번째 배정을 사용한다. 두 배정에서 역할이 다른 가장 작은 번호의 사람이 더 작은 번호의 역할을 맡으면 그 배정이 사전순으로 앞선다. 즉 인 가 존재하고 모든 에 대해 이다.
, , 가 주어지면 그 배정을 구해야 한다.
입력
입력 파일의 첫 줄에는 테스트케이스의 수 가 주어진다. . 다음 개 줄에는 정수 3개 , , 가 주어진다. , 이고, 는 정확히 명이 자신의 전문 역할을 수행하는 명의 역할 배정의 총 개수 이하의 양의 정수이다.
출력
각 테스트케이스마다 해당 배정을 한 줄에 출력한다. 그 줄에는 1과 사이의 정수 개가 공백으로 구분되어 있어야 한다.