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 }