/* بِسْمِ اللَّـهِ الرَّحْمَـٰنِ الرَّحِيمِ
( إِنِ الْحُكْمُ إِلَّا لِلَّهِ )
*/
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef vector<pair<int,int> > vpii;
typedef unsigned long long ull;
typedef long double ld;
const long double pi=acos(-1);
#define x first
#define y second
#define read(n,a) for(int i=0;i<n;i++)cin>>a[i];
#define rep(i,z,n) for(ll i=z;i<n;i++)
#define rrep(i,z,n) for(ll i=z-1;i>=n;i--)
#define all(v) v.begin(),v.end()
#define clr(v,d) memset(v,d,sizeof(v));
ll a[300002];
ll b[200002];
vector<int> ad[1000002];
int dx[] = {0,0,1,-1};
int dy[] = {1,-1,0,0};
string s, ss;
ll n,m,k,w;
ll ans ,ans1;
ll mod = 1e9 +7;
int main()
{
cin.tie(0);
cin.sync_with_stdio(0);
//freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
int t=1;
//cin>>t;
while(t--)
{
cin>>n;
read(n,a);
vector<ll>v;
v.push_back(a[0]);
rep(i,1,n)
{
if(a[i]<0)
{
v.back()+=a[i];
while((int)v.size()>=2 && v.back()<0)
{
ll te = v.back();
v.pop_back();
v.back()+=te;
}
}
else v.push_back(a[i]);
}
while(v.back()==0 && (int)v.size()>1)v.pop_back();
for(ll ch : v)cout<<ch <<" ";
}
return 0;
}
Copy