순열의 최대 위수

아직 제출이 없습니다시간 제한3초메모리 제한512 MB

문제

nn개의 원소로 이루어진 순열은 전단사 함수 π:{1,2,,n}{1,2,,n}\pi:\{1,2,\dots,n\}\to\{1,2,\dots,n\}이다.

순열 π\pi위수(order) 는 다음을 만족하는 가장 작은 정수 k1k\ge 1이다. 모든 i=1,2,,ni=1,2,\dots,n에 대해

π(π(π(i)))k=i,\underbrace{\pi(\pi(\cdots\pi(i)\cdots))}_{k\text{번}} = i,

π\pi를 자기 자신과 kk번 합성하면 항등함수가 된다. 예를 들어 n=3n=3일 때 순열 π(1)=3, π(2)=2, π(3)=1\pi(1)=3,\ \pi(2)=2,\ \pi(3)=1의 위수는 22인데, 모든 ii에 대해 π(π(i))=i\pi(\pi(i))=i이기 때문이다.

주어진 nn에 대해, 위수가 가능한 한 큰 순열들을 생각하자. 예를 들어 55개 원소의 순열 중 최대 위수는 66이며, 위수가 66인 순열의 한 예는 π(1)=4, π(2)=5, π(3)=2, π(4)=1, π(5)=3\pi(1)=4,\ \pi(2)=5,\ \pi(3)=2,\ \pi(4)=1,\ \pi(5)=3이다.

최대 위수를 가지는 nn개 원소의 순열들 중에서 사전순으로 가장 앞서는(가장 작은) 것을 찾고자 한다. 엄밀히 말해, 순열 π\pi가 순열 σ\sigma보다 앞선다는 것은 어떤 첨자 ii가 존재하여 모든 j<ij<i에 대해 π(j)=σ(j)\pi(j)=\sigma(j)이고 π(i)<σ(i)\pi(i)<\sigma(i)인 경우를 뜻한다. n=5n=5일 때 위수가 66인 순열 중 사전순으로 가장 작은 것은 π(1)=2, π(2)=1, π(3)=4, π(4)=5, π(5)=3\pi(1)=2,\ \pi(2)=1,\ \pi(3)=4,\ \pi(4)=5,\ \pi(5)=3이다.

여러 개의 값 n1,n2,,ndn_1,n_2,\dots,n_d를 입력받아, 각 nin_i에 대해 위수가 최대인 nin_i개 원소의 순열 중 사전순으로 가장 작은 것을 출력하는 프로그램을 작성하라.

입력

첫째 줄에 정수 dd가 주어진다 (1d101\le d\le 10). 이어지는 dd개의 줄에는 각각 하나의 정수 nin_i가 주어진다 (1ni100001\le n_i\le 10000).

출력

dd개의 줄을 출력한다. ii번째 줄에는 위수가 최대인 nin_i개 원소의 순열 중 사전순으로 가장 작은 것, 즉 수열 π(1),π(2),,π(ni)\pi(1),\pi(2),\dots,\pi(n_i)를 공백 하나로 구분하여 출력한다.