역전 쌍 통찰
시간 제한0.5초메모리 제한2048 MB
N과 K가 주어질 때, 역전 쌍(inversion) 개수로 정렬하고 같으면 사전순으로 나열한 목록에서 K번째 순열을 구합니다.
문제
MathemIsland에는 다양한 생물이 살고 있다. 뿌리, 나무, 나뭇잎, 비둘기처럼 수학 책에서 볼 법한 것이 모두 있다. 어디를 보든 순열이 있다.
ICPC 대학교는 이 순열들을 체계적으로 분류하는 방법을 마련했다. 생물 유전학 연구에서는 역전 쌍의 개수가 특히 중요하므로, 1부터 까지의 정수로 만들 수 있는 개의 순열을 먼저 역전 쌍의 개수 순으로, 개수가 같으면 사전순으로 정렬한다. 이렇게 하면 각 순열마다 1부터 까지의 정수가 하나씩 정해지며, 그 정수는 정렬된 개 목록에서 해당 순열의 위치를 뜻한다.
역전 쌍이 0개인 순열은 항등 순열 뿐이므로 번호는 이다. 역전 쌍이 가장 많은 순열은 역순 뿐이므로 번호는 이다.
ICPC 대학교 데이터베이스를 구축하는 팀의 일원으로서, 번호로 순열을 찾아내는 프로그램을 작성한다. 두 정수 과 가 주어지면, 번호 에 해당하는 1부터 까지의 정수 순열을 출력한다.
순열에서 역전 쌍이란 본래 순서에서 벗어난 원소의 쌍을 말한다. 개의 원소로 이루어진 순열 의 역전 쌍 개수 는 다음과 같이 정의한다.
입력
첫 줄에 두 정수 ()과 ()이 주어진다.
출력
한 줄에 개의 정수를 출력한다. 대학의 정렬 기준에서 번째에 해당하는, 1부터 까지 정수의 순열이다.