#P5080. Tweetuzki 爱序列

Tweetuzki 爱序列

题目背景

本题为改编题

题目描述

Tweetuzki 有一个长度为 nn 的序列 a1,a2,,ana_1, a_2, \cdots, a_n

他希望找出一个最大的 kk,满足在原序列中存在一些数 b1,b2,,bkb_1, b_2, \cdots, b_k(可打散在原序列中的顺序),满足对于任意的 i(1i<k)i(1 \le i < k)bi÷3=bi+1b_i \div 3 = b_{i+1}(这时 bib_i 必须能够被 33 整除)或 bi×2=bi+1b_i \times 2 = b_{i+1}。并输出这个序列。

输入格式

第一行一个正整数 n(2n105)n(2 \le n \le 10^5),表示序列的长度。
第二行包含 nn 个正整数,$a_1, a_2, \cdots, a_n(1 \le a_i \le 3 \times 10^{18})$,描述这个数列。

输出格式

第一行一个正整数 kk,表示最大的 kk
第二行 kk 个正整数 b1,b2,,bnb_1, b_2, \cdots, b_n,描述你选择的数。

6
4 8 6 3 12 9

6
9 3 6 12 4 8 

4
42 28 84 126

4
126 42 84 28 

5
4 8 16 12 24
4
12 24 8 16

提示

Subtask #1 (20 points)2n82 \le n \le 8
Subtask #2 (30 points)2n100,1ai7×1082 \le n \le 100, 1 \le a_i \le 7 \times 10^8
Subtask #3 (20 points)2n1000,1ai10002 \le n \le 1000, 1 \le a_i \le 1000
Subtask #4 (30 points)2n105,1ai3×10182 \le n \le 10^5, 1 \le a_i \le 3 \times 10^{18}