#include <bits/stdc++.h>
#define fr first
#define sc second
#define pb push_back
#define ll long long
#define Mid ((L+R)/2);
#define rev(x) reverse(x.begin(),x.end())
#define sortt(x) sort(x.begin(),x.end())
#define deb(x) cout<<#x<<"="<<x<<endl
#define pans(x) x ? cout<<"YES"<<"\n" :cout<<"NO"<<"\n";
#define endl "\n"
#define AB ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define log(x) (31^__builtin_clz(x)) // Easily calculate log2 on GNU G++ compilers
#define logll(x) (63^__builtin_clzll(x)) // Easily calculate log2 on GNU G++ compilers
#define stldeb(x) {cout<< #x << " = " ;for(auto it : x)cout<< it << " ";cout<< endl;}
#define stlpdeb(x){cout<< #x << " : " <<endl;for(auto p : x) cout<<p.fr<< " " <<p.sc<<endl;}
using namespace std;
int const N=2e5+20;
int Min=-1e9;
int Max=1e9;
ll LLMin=-1e18;
ll LLMax=1e18;
int mod=1e9;
int main()
{
AB
int n;
cin>>n;
ll b[n+10];
vector<ll>ans1,ans2;
for(int i=1;i<=(n/2);i++)
{
cin>>b[i];
if(i==1)
{
ans1.pb(0);
ans2.pb(b[i]);
continue;
}
ll last1=ans1.back();
ll last2=ans2.back();
ll x=last1;
ll y=b[i]-x;
if(y>last2)
{
x=b[i]-last2;
y=b[i]-x;
}
ans1.pb(x);
ans2.pb(y);
}
rev(ans2);
for(auto i:ans1)
cout<<i<<' ';
for(auto i:ans2)
cout<<i<<' ';
}
Divisible | Three primes |
Coprimes | Cost of balloons |
One String No Trouble | Help Jarvis! |
Lift queries | Goki and his breakup |
Ali and Helping innocent people | Book of Potion making |
Duration | Birthday Party |
e-maze-in | Bricks Game |
Char Sum | Two Strings |
Anagrams | Prime Number |
Lexical Sorting Reloaded | 1514A - Perfectly Imperfect Array |
580A- Kefa and First Steps | 1472B- Fair Division |
996A - Hit the Lottery | MSNSADM1 Football |
MATCHES Playing with Matches | HRDSEQ Hard Sequence |
DRCHEF Doctor Chef | 559. Maximum Depth of N-ary Tree |
821. Shortest Distance to a Character | 1441. Build an Array With Stack Operations |