Problem2123--大鱼吃小鱼

2123: 大鱼吃小鱼

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 15  Solved: 2
[Submit] [Status] [Web Board] [Creator:]

Description

小 X 今天在玩大鱼吃小鱼游戏,在玩游戏的时候,为了更好地玩好这款游戏,他决定用自己学过的算法知识去解决这个问题。

一个狭长的水域中有 n 条鱼排成一列,第 i 只鱼有自身的重量 ai

在这个大鱼吃小鱼游戏中,每条鱼只能吃体重严格小于自身体重的鱼,当体重为 ai 的鱼吃掉体重为 aj  的鱼之后,体重为 ai 的鱼的体重变为 ai = ai |  aj ,并且第 j 条鱼消失,两边的鱼位置相邻。

由于狭长水域空间限制,每条鱼只能吃掉与它相邻的鱼,在大鱼吃小鱼游戏,你可以安排每个时刻哪条鱼吃哪条鱼,求出初始在每个位置的鱼的最大可能体重,对于每条鱼,输出它最大可能体重。

Input

第一行输入一个数字 n , 代表鱼的数量。

第二行输入一个长度为 n 的序列 a1 , a2 , ... , an , 代表初始状态下每只鱼的体重 。

Output

输出一行 n 个数字,代表初始在每个位置的鱼的最终最大可能体重值。

Sample Input Copy

输入 #1
5
3 2 1 4 9

输入 #2
10
3 2 13 1 8 4 9 12 15 6

Sample Output Copy

输出 #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

Source/Category