布朗博士搭乘著時光機器回到了原始人出現的年代,他打算教導原始人現代的資訊技術。首先,布朗博士教原始人們數字的二進位表示法,他由小而大列下了幾個數字:
$000, 001, 010, 011, 100, 101, 110, 111$
剛列完,原始人的首領就糾正他,說下面的列法才是正確由小到大的順序:
$000, 001, 010, 100, 011, 101, 110, 111$
爭吵了半天,布朗博士才發現,原來原始人在計數時是用石頭在牆上刻劃一道道的痕跡,每道痕跡 就算計數一次,因此在二進位的表示法下,$1$ 的次數愈多,在原始人心中認定的數值愈大。
請你寫一支程式幫助布朗博士,將 $n$ 個十進位表示的數字依原始人認定的順序(即二進位表示法中$1$ 的個數)由小而大排序;倘若兩數字的二進位表示中 $1$ 的個數相同,則視為相同,依輸入時的順序輸出。
$n$
$a_1\ a_2\ \dots\ a_n$
$b_1\ b_2\ \dots\ b_n$
測資限制
評分說明
本題共有二組子任務,條件限制如下所示。每一子任務可有一或多筆測試資料,該組所有測試資料皆需答對才會獲得該組分數。
2021 TOI 入營考 pA
testdata set by Omelet
No. | Testdata Range | Constraints | Score |
---|---|---|---|
1 | 0~9 | $a_i \leq 7$。 | 40 |
2 | 0~29 | 無額外限制。 | 60 |