P5080 Tweetuzki 爱序列
题目背景
本题为改编题
题目描述
Tweetuzki 有一个长度为 $n$ 的序列 $a_1, a_2, \cdots, a_n$。
他希望找出一个最大的 $k$,满足在原序列中存在一些数 $b_1, b_2, \cdots, b_k$(可打散在原序列中的顺序),满足对于任意的 $i(1 \le i < k)$,$b_i \div 3 = b_{i+1}$(这时 $b_i$ 必须能够被 $3$ 整除)或 $b_i \times 2 = b_{i+1}$。并输出这个序列。
输入格式
第一行一个正整数 $n(2 \le n \le 10^5)$,表示序列的长度。
第二行包含 $n$ 个正整数,$a_1, a_2, \cdots, a_n(1 \le a_i \le 3 \times 10^{18})$,描述这个数列。
输出格式
第一行一个正整数 $k$,表示最大的 $k$。
第二行 $k$ 个正整数 $b_1, b_2, \cdots, b_n$,描述你选择的数。
说明/提示
**_Subtask_ #1 _(20 points)_:$2 \le n \le 8$;**
**_Subtask_ #2 _(30 points)_:$2 \le n \le 100, 1 \le a_i \le 7 \times 10^8$;**
**_Subtask_ #3 _(20 points)_:$2 \le n \le 1000, 1 \le a_i \le 1000$;**
**_Subtask_ #4 _(30 points)_:$2 \le n \le 10^5, 1 \le a_i \le 3 \times 10^{18}$。**