#P15345. [TOIP 2025] 連序

[TOIP 2025] 連序

說明

一個非負整數的二進位表示可視為一 0101 字串,左邊為高位(most significant bit),右邊為低位(least significant bit);若最多有 kk 個連續的位元為 11,則稱該數字的「連序」為 kk。今給定 nn 個非負整數,請依它們的「連序」由小而大排序;若兩數字的連序相同,則先輸出數值較小的。

舉例來說,7712122727 的二進位表示分為別 (111)2{\left(111\right)}_2(1100)2{\left(1100\right)}_2(11011)2{\left(11011\right)}_2,可知三數的連序分別為 332222,其中 12122727 的連序相同,但 12<2712 < 27,故需依序輸出 1212272777

输入格式

$$\begin{aligned} &n \\ &a_1 \; a_2 \; a_3 \; \cdots \; a_n \end{aligned}$$
  • nn 代表欲排序的數字個數。
  • aia_i 代表第 ii 個欲排序的數字。

输出格式

$$\begin{aligned} &s_1 \; s_2 \; s_3 \; \cdots \; s_n \end{aligned}$$
  • sis_i 代表依照題目要求排序後的第 ii 個數字。
3
7 12 27
12 27 7
5
1 2 3 4 5
1 2 4 5 3

提示

測資限制

  • 1n2×1051 \le n \le 2 \times {10}^5
  • 0ai<2300 \le a_i < 2^{30}
  • 所有輸入的數皆為整數。

評分說明

本題共有四組子任務,條件限制如下所示。每一組可有一或多筆測試資料,該組所有測試資料皆需答對才會獲得該組分數。

子任務 分數 額外輸入限制
1 22 n2, ai<16n \le 2,\ a_i < 16
2 n2000, ai<216n \le 2\,000,\ a_i < 2^{16}
3 26 ai<216a_i < 2^{16}
4 30 無額外限制。