问题 D: 差分太简单喵~

问题 D: 差分太简单喵~

时间限制: 1Sec 内存限制:128 MB
提交:153 解决:86
[ 状态] [ 讨论版] [ 提交] [命题人: ]
题目描述

C已经学会了前缀和,于是决定进一步向喵喵学习差分



差分操作可以看做是前缀和操作的逆运算,即,

通俗来说,如果想对数组a的某一区间进行加或减操作,我们可以遍历对区间的每一个数进行加减操作,但是这样面对特殊的大数据时会无法处理;于是我们可以采用差分,仅在区间的开头标记加一个数,同时在区间的结束标记减去相同的数,代表加的这个数仅在区间范围内生效

差分操作能够解决某些前缀和处理不了的特殊的大数据,利用差分的形式实现离散化的操作。

例如:想要对数组a[l, r]区间+k,则可以转换为在一个数组bl位置加k,同时在br + 1的位置减k

注意到,假如对差分数组b进行前缀和操作,则可得到原数组a



C掌握差分技巧后,喵喵马上又出了一道题目来考验他:

在小C学习前缀和时候,喵喵记录了他每个时间增加的掌握度数组a,同时对数组a进行前缀和操作得到了数组b。但是粗心的喵喵忘记了保留原数组a的备份,于是来需求你的帮助。喵喵将把数组b交给你,请你帮他计算出原数组a的各个元素。

输入

第一行输入一个整数n(1n105),表示数组b的长度。

第二行输入n个整数b1, b2, ……, bn( 1bi105),每个整数间用一空格分开,表示数组b的各个元素。

输出

共两行,

第一行前缀和数组bn个元素,每个数之间用一个空格分隔。

第二行原数组an个元素,每个数之间用一个空格分隔。

样例输入 Copy
5 1 3 6 10 15
样例输出 Copy
1 3 6 10 15 1 2 3 4 5
提示
注意数据范围喵~