5899 - 等级7:最短路
Time Limit : 1 秒
Memory Limit : 128 MB
给定一个长度为 n 的数列 a,如果满足 ai&aj!=0(按位与运算结果不为零),则在节点 i 和 j 之间存在一条长度为 a_i + a_j 的无向边。请计算从节点 1 到所有其他节点的最短路径长度。
Input
第一行一个正整数 n。
接下来一行 n 个整数a1~an
Output
输出一行n个整数,第i个为1到ide最短路长度,不能到达输出-1
Examples
Input
5 1 5 6 7 8
Output
0 6 17 8 -1
Hint
对于20%的数据,n \leq 10
对于 40%的数据,n \leq 10^3
对于另外 20% 的数据,所有 a_i 满足 a_i = 2^x + 2^y(x \neq y)
对于100% 的数据:
1 \leq n \leq 10^5
0 \leq a_i \leq 2^{30}