問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
根を 0 として、各ノードに順番に番号が割り当てられた二分木を考えます。この二分木では、親ノードの番号を 2 倍して 1 または 2 を足したものが子ノードの番号となっています。
長さ N の数列が与えられます。この数列のインデックスと二分木の番号が対応しており、
数列の"親の番号"番目の要素は、"子の番号"番目の要素以下であるという条件(*)が成り立っています。
N
a_0 ... a_{N-1}
x
条件(*)が成り立つように入れ替えた長さ N+1 の数列の要素を、左から順番に半角スペース区切りで一行で出力してください。
また末尾に改行をいれ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
6
1 3 7 5 12 9
0
0 3 1 5 12 9 7
12
1 3 7 5 12 9 11 6 6 12 14 11
6
1 3 6 5 12 7 11 6 6 12 14 11 9