n개의 원소로 이루어진 순열은 전단사 함수 π:{1,2,…,n}→{1,2,…,n}이다.
순열 π의 위수(order) 는 다음을 만족하는 가장 작은 정수 k≥1이다. 모든 i=1,2,…,n에 대해
k번π(π(⋯π(i)⋯))=i,
즉 π를 자기 자신과 k번 합성하면 항등함수가 된다. 예를 들어 n=3일 때 순열 π(1)=3, π(2)=2, π(3)=1의 위수는 2인데, 모든 i에 대해 π(π(i))=i이기 때문이다.
주어진 n에 대해, 위수가 가능한 한 큰 순열들을 생각하자. 예를 들어 5개 원소의 순열 중 최대 위수는 6이며, 위수가 6인 순열의 한 예는 π(1)=4, π(2)=5, π(3)=2, π(4)=1, π(5)=3이다.
최대 위수를 가지는 n개 원소의 순열들 중에서 사전순으로 가장 앞서는(가장 작은) 것을 찾고자 한다. 엄밀히 말해, 순열 π가 순열 σ보다 앞선다는 것은 어떤 첨자 i가 존재하여 모든 j<i에 대해 π(j)=σ(j)이고 π(i)<σ(i)인 경우를 뜻한다. n=5일 때 위수가 6인 순열 중 사전순으로 가장 작은 것은 π(1)=2, π(2)=1, π(3)=4, π(4)=5, π(5)=3이다.
여러 개의 값 n1,n2,…,nd를 입력받아, 각 ni에 대해 위수가 최대인 ni개 원소의 순열 중 사전순으로 가장 작은 것을 출력하는 프로그램을 작성하라.
첫째 줄에 정수 d가 주어진다 (1≤d≤10). 이어지는 d개의 줄에는 각각 하나의 정수 ni가 주어진다 (1≤ni≤10000).
d개의 줄을 출력한다. i번째 줄에는 위수가 최대인 ni개 원소의 순열 중 사전순으로 가장 작은 것, 즉 수열 π(1),π(2),…,π(ni)를 공백 하나로 구분하여 출력한다.