COCI 2007/2008, Contest #2
Instead of paying attention in chemistry class, Luka is killing time playing with numbers again. This time, he wrote N positive integers so that they form a ring (circle). After that he formed a new ring by adding to each number its two neighbours.
The teacher noticed this and took away the first piece of paper, with the original ring. This did not trouble Luka much because he knows he can use the other ring to reconstruct the original.
Write a program that solves Luka's problem.
The first line contains the integer N (3 ≤ N ≤ 10 000), the number of integers in the rings.
Each of the following N lines contains an integer less than 109 (one billion). These numbers, in order, form the second ring.
The input will be such that a solution, although not necessarily unique, will always exist.
Output the original ring on N lines. The numbers must be positive.
Rotating the ring is not allowed. For example, the sum of the first three output numbers must be equal to the second number in the input ring.
Note: The solution need not be unique.
In test cases worth 70% of points, N will be less than 100.
3 5 5 5
2 1 2
4 20 15 17 14
5 8 2 7
5 7 8 9 10 11
4 1 3 5 2
Point Value: 15 (partial)
Time Limit: 1.00s
Memory Limit: 32M
Added: Aug 13, 2013
C++03, PAS, C, HASK, ASM, RUBY, PYTH2, JAVA, PHP, SCM, CAML, PERL, C#, C++11, PYTH3