Codeforce 712A Memory and Crow

124 阅读2分钟

A. Memory and Crow

time limit per test:2 seconds

memory limit per test:256 megabytes

input:standard input

output:standard output

There are n integers b1, b2, ..., b**n written in a row. For all i from 1 to n, values a**i are defined by the crows performing the following procedure:

  • The crow sets a**i initially 0.
  • The crow then adds b**i to a**i, subtracts b**i + 1, adds the b**i + 2 number, and so on until the n'th number. Thus, a**i = b**i - b**i + 1 + b**i + 2 - b**i + 3....

Memory gives you the values a1, a2, ..., a**n, and he now wants you to find the initial numbers b1, b2, ..., b**n written in the row? Can you do it?

Input

The first line of the input contains a single integer n (2 ≤ n ≤ 100 000) — the number of integers written in the row.

The next line contains n, the i'th of which is a**i ( - 109 ≤ a**i ≤ 109) — the value of the i'th number.

Output

Print n integers corresponding to the sequence b1, b2, ..., b**n. It's guaranteed that the answer is unique and fits in 32-bit integer type.

Examples

Input

5
6 -4 8 -2 3

Output

2 4 6 1 3 

Input

5
3 -2 -1 5 6

Output

1 -3 4 11 6 

Note

In the first sample test, the crows report the numbers 6, - 4, 8, - 2, and 3 when he starts at indices 1, 2, 3, 4 and 5 respectively. It is easy to check that the sequence 2 4 6 1 3 satisfies the reports. For example, 6 = 2 - 4 + 6 - 1 + 3, and  - 4 = 4 - 6 + 1 - 3.

In the second sample test, the sequence 1,  - 3, 4, 11, 6 satisfies the reports. For example, 5 = 11 - 6 and 6 = 6.

解题思路:

【题意】
有n个数b1, b2, ..., bn

a1, a2, ..., an是通过等式ai = bi - bi + 1 + bi + 2 - bi + 3....(±)bn得到的

现给你a1, a2, ..., an这n个数,问b1, b2, ..., bn是多少
【类型】
公式推导
【分析】\

由此可见,数组b中的第i项等于数组a中的第i项与第i+1项之和

特别地,数组b中的第n项等于数组a中的第n项

\

【时间复杂度&&优化】
O(n)

题目链接→Codeforces Problem 712A Memory and Crow

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     int n,a,b;
 6     while(cin>>n)
 7     {
 8         for(int i=1;i<=n;i++)
 9         {
10             cin>>a;
11             if(i>1)
12                 cout<<a+b<<" ";
13             b=a;
14         }
15         cout<<a<<endl;
16     }
17     return 0;
18 }