题目描述
动物城是一座大城市,居住着许多不同种类的动物。尽管存在差异,它们都必须一起工作:在警察局、市政厅、快递服务以及城市生活的许多其他领域。
每个动物城居民都有一个效率指标——一个非负整数,描述其个人工作能力。然而,动物城早已注意到,最终结果不仅取决于动物本身,还取决于它与谁配对工作。
两个效率指标分别为 $x$ 和 $y$ 的动物共同工作的效率由特殊函数 $F(x, y)$ 定义。
$F(x, y)$ 定义为满足以下条件的位数 $i$ 的数量:在 $x$ 和 $y$ 的二进制表示中,第 $i$ 位和第 $i+1$ 位同时为 $1$。
动物城市政厅决定优化工作流程,为每个城市居民确定与它配对最有利的另一个动物。显然,一个动物不能与自己配对;此外,每个居民的选择是独立于其他人的。
给你一个动物城居民列表及其对应的效率指标。对于每个动物,需要找到另一个动物,使得它们共同工作的效率(由函数 $F$ 计算)最大——这个最大效率值称为团队合作指标。
更正式地说,对于每个 $i$ 从 $1$ 到 $n$,需要计算 $\max_{j \neq i} F(a_i, a_j)$。
输入格式
第一行包含一个整数 $n$——动物城居民的数量($1 \le n \le 10^6$)。
第二行包含 $n$ 个整数 $a_i$——动物的效率指标($0 \le a_i \le n$)。
输出格式
在唯一的一行中输出 $n$ 个整数——每个动物的团队合作指标。
评分系统
| 子任务 | 分数 | 额外限制 | 所需子任务 | 评测信息 |
|---|---|---|---|---|
| 0 | – | 样例 | 无 | 完全评测 |
| 1 | 10 | $n \le 2\,000$ | 0 | 首次错误 |
| 2 | 30 | $n \le 10\,000$ | 0, 1 | 首次错误 |
| 3 | 20 | $n \le 100\,000$ | 0–2 | 首次错误 |
| 4 | 20 | $n \le 200\,000$ | 0–3 | 首次错误 |
| 5 | 20 | 无 | 0–4 | 首次错误 |
示例
输入
8
3 0 5 6 2 2 1 7
输出
1 0 0 1 0 0 0 1
