1부터 n까지의 정수가 한 번씩 나타나는 길이 n의 수열 x1,x2,…,xn이 주어진다.
두 수를 바꾸는 "스왑" 연산으로 이 수열을 고칠 수 있다. k=2,3,…,n 순서로 k를 하나씩 늘려 가면서, 각 k마다 xk와 x⌊k/2⌋를 바꿀지 바꾸지 않을지 고를 수 있다. 이미 지나간 k로는 돌아가지 못한다.
수열 a1,a2,…,an이 수열 b1,b2,…,bn보다 사전순으로 앞선다는 것은, k<j인 모든 k에 대해 ak=bk이고 aj<bj인 j (1≤j≤n)가 존재한다는 뜻이다.
순서대로 "스왑" 연산을 골라 만들 수 있는 수열 중 사전순으로 가장 앞선 수열은 무엇일까?
첫 줄에 정수 n이 주어진다. (1≤n≤5000)
둘째 줄에 수열을 이루는 n개의 정수가 공백으로 구분되어 주어진다. 이 수열은 1부터 n까지의 정수를 한 번씩 담은 순열이다.
첫 줄에 순서대로 "스왑" 연산을 골라 만들 수 있는 수열 중 사전순으로 가장 앞선 수열을 나타내는 n개의 정수를 공백으로 구분해 출력한다.