Logo Infinity Online Judge

InfOJ

时间限制:1 s 空间限制:512 MB

#56. 最短路

统计

题目描述

给定长度为 $n$ 的数列 $a$,如果 $a_i \& a_j\neq 0$(按位与),则在 $i,j$ 之间存在一条长度为 $a_i+a_j$ 的边,求 $1$ 至所有点的最短路。

输入格式

第一行一个正整数 $n$。

接下来一行 $n$ 个整数 $a_1\sim a_n$。

输出格式

输出一行 $n$ 个整数,第 $i$ 个为 $1$ 到 $i$ 的最短路长度。不能到达输出 -1

样例输入

5
1 5 6 7 8

样例输出

0 6 17 8 -1

数据范围

对于 $20\%$ 的数据, $n\leq 10$。

对于 $40\%$ 的数据, $n\leq 10^3$。

对于另外 $20\%$ 的数据, 所有的 $a_i$ 均可表示为 $2^x+2^y$ 的形式。

对于 $100\%$ 的数据, $1\leq n\leq 10^5,0\leq a_i\leq 2^{31}-1$。