'use strict'

/////////////////////////////////////
//コピペスペース//////////////////////

//定数
const INF  =  900719925474099 // Math.floor(Number.MAX_SAFE_INTEGER / 10);

//スペース区切りの数字列を数字の配列にして返す
function mapint(line){return line.split(' ').map((v)=>parseInt(v));}

function lower_bound(d,a,b,e){
    for(var c;1<b-a;)
        d[c=0|(a+b)/2]<e ? a=c : b=c;
    return d[a]<e?b:a
};

const MOD = 1000000007;

//コピペスペース//////////////////////
/////////////////////////////////////

function Main(input){
	let temp = input.trim().split('\n');
	let n = parseInt(temp[0]);
	let a = mapint(temp[1]);

	let x = new Array(n);
	let hugo = 1;
	x[0] = 0;
	for(let i=0;i<n;i++){
		x[0] += hugo * a[i];
		hugo *= -1;
	}
	a[n-1] -= x[0]/2;
	for(let i=1;i<n;i++){
		x[i] = 2 * a[i-1] - x[i-1];
	}
	console.log(x.join(' '));

}

Main(require("fs").readFileSync("/dev/stdin", "utf8"));
