CF1299A Anu Has a Function

题目描述

Anu 创建了她自己的函数 $f$:$f(x, y) = (x | y) - y$,其中 $|$ 表示[按位或运算](https://en.wikipedia.org/wiki/Bitwise_operation#OR)。例如,$f(11, 6) = (11|6) - 6 = 15 - 6 = 9$。可以证明,对于任意非负整数 $x$ 和 $y$,$f(x, y)$ 的值也是非负的。 她想进一步研究这个函数,并为自己设计了多个问题。但她无法解决所有问题,需要你的帮助。以下是其中一个问题。 一个数组 $[a_1, a_2, \dots, a_n]$ 的“值”被定义为 $f(f(\dots f(f(a_1, a_2), a_3), \dots, a_{n-1}), a_n)$(见下方注释)。给定一个不一定互不相同的数组,你可以重新排列其元素。请问应如何重新排列数组,使其“值”最大?

输入格式

第一行包含一个整数 $n$($1 \le n \le 10^5$)。 第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($0 \le a_i \le 10^9$)。数组中的元素不保证互不相同。

输出格式

输出 $n$ 个整数,为使数组“值”最大的重新排列结果。如果有多种答案,输出任意一种均可。

说明/提示

在第一个测试样例中,数组 $[11, 6, 4, 0]$ 的值为 $f(f(f(11, 6), 4), 0) = f(f(9, 4), 0) = f(9, 0) = 9$。 $[11, 4, 0, 6]$ 也是一个合法答案。 由 ChatGPT 4.1 翻译