1339:码怪

时间限制: 2 S | 内存限制: 65536 KB
Accept: 0 | Submit: 0
[提交] [状态] [讨论版]
描述

这是一道 Special Judge 的题目,只要输出符合题目要求的答案,那么你的程序就会被认为是正确的。

罗少很喜欢打代码,他每天都会把自己当天的代码量记录到一个文本文档中。涂涂知道了这件事,然后偷偷从罗少的电脑中把文档拷贝了出来。

这份文档是这个样子的:2 3 4 1 5

总共 n 个数字分别代表罗少这 n 天的代码量,涂涂想捉弄一下罗少,于是他新建了一个空白文档并往里输入了 n 个数,第 i 个数字代表罗少第 i 天、第 i - 1 天和第 i + 1 天代码量的最大值。

所以新文档是这个样子:3 4 4 5 5

也就是说,我们假设源文档的值分别是 a[1] ... a[n],新文档的值分别是 b[1] ... b[n],那么对于任意一个 i 都有 b[i] = max(a[i - 1], a[i], a[i + 1]),当然这里假定 a[0] = a[n + 1] = 0,因为第 0 天和第 n + 1 天罗少并没有写代码。

涂涂操作完以后用这份文档替换掉了罗少原来的文档,罗少发现以后枯了,你可以根据这份新的文档算出罗少之前的文档吗?

输入

第一行是一个正整数 n 代表新文档中有多少个数字。(1 <= n <= 1e5)

然后是 n 个正整数代表涂涂输入的数字,这些数字的大小都不会超过1e5。

涂涂输入完以后核对了好几次,也就是说,总有一份原文档可以算出这份新文档,即保证题目一定有解。

输出

根据这份新文档,算一下罗少之前那份文档可能是什么,每两个数字之间用空格隔开即可。

PS:特判题对格式没有要求,因此最后一个数字后面的空格和换行不会影响答案的正确性。

样例输入

5

3 4 4 5 5

样例输出

2 3 4 1 5

HINT

3 2 4 3 5 也是一个正确的答案。

来源
19-20(2)第4次线上赛