Description
小 X 今天在玩大鱼吃小鱼游戏,在玩游戏的时候,为了更好地玩好这款游戏,他决定用自己学过的算法知识去解决这个问题。
一个狭长的水域中有 n 条鱼排成一列,第 i 只鱼有自身的重量 ai 。
在这个大鱼吃小鱼游戏中,每条鱼只能吃体重严格小于自身体重的鱼,当体重为 ai 的鱼吃掉体重为 aj 的鱼之后,体重为 ai 的鱼的体重变为 ai = ai | aj ,并且第 j 条鱼消失,两边的鱼位置相邻。
由于狭长水域空间限制,每条鱼只能吃掉与它相邻的鱼,在大鱼吃小鱼游戏,你可以安排每个时刻哪条鱼吃哪条鱼,求出初始在每个位置的鱼的最大可能体重,对于每条鱼,输出它最大可能体重。
Input
第一行输入一个数字 n , 代表鱼的数量。
第二行输入一个长度为 n 的序列 a1 , a2 , ... , an , 代表初始状态下每只鱼的体重 。
Output
输出一行 n 个数字,代表初始在每个位置的鱼的最终最大可能体重值。
输入 #1
5
3 2 1 4 9
输入 #2
10
3 2 13 1 8 4 9 12 15 6
输出 #1
3 3 1 7 15
输出 #2
3 2 15 1 13 4 13 13 15 6
HINT
对于前 10% 数据,满足 1 ≤ n ≤ 10 。
对于另外 30% 数据,满足 1 ≤ n ≤ 103。
对于 100% 数据,满足 1 ≤ n ≤105 , 1 ≤ ai ≤ 109。