CF336C Vasily the Bear and Sequence

题目描述

熊 Vasily 拥有一个正整数序列 $a_{1},a_{2},...,a_{n}$。熊 Vasily 想要在纸上写出一些数字,使得这些数字的“美丽值”最大。 写出的数 $b_{1},b_{2},...,b_{k}$ 的美丽值定义为最大的非负整数 $v$,使得 $b_{1} \text{ and } b_{2} \text{ and } ... \text{ and } b_{k}$ 能被 $2^{v}$ 整除。如果不存在这样的 $v$(即对于任意非负整数 $v$,$b_{1} \text{ and } b_{2} \text{ and } ... \text{ and } b_{k}$ 能被 $2^{v}$ 整除),则美丽值为 $-1$。 请你告诉熊应该写出哪些数字,使得美丽值最大。如果有多种写法,应该选择写出的数字数量最多的那一种。 这里的 $x \text{ and } y$ 表示对 $x$ 和 $y$ 进行按位与(bitwise AND)操作。在 C++ 和 Java 中,这个操作用“&”表示,在 Pascal 中用“and”表示。

输入格式

第一行包含一个整数 $n$($1 \leq n \leq 10^{5}$)。 第二行包含 $n$ 个用空格分隔的整数 $a_{1},a_{2},...,a_{n}$($1 \leq a_{1} < a_{2} < ... < a_{n} \leq 10^{9}$)。

输出格式

第一行输出一个整数 $k$($k > 0$),表示应该写出的整数个数。 第二行输出 $k$ 个整数 $b_{1},b_{2},...,b_{k}$,为应该写出的这些整数。你可以以任意顺序输出,所有数字必须互不相同。如果有多种选择方案,输出最大的 $k$。如果仍有多种方案,可以任选其一。

说明/提示

由 ChatGPT 5 翻译