Source Code
/*                                بِسْمِ اللَّـهِ الرَّحْمَـٰنِ الرَّحِيمِ

                                    ( إِنِ الْحُكْمُ إِلَّا لِلَّهِ )

*/
#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]);
        }
        if(v.back()==0 && (int)v.size()>1)v.pop_back();
        for(int ch : v)cout<<ch <<" ";
    }
    return 0;
}
Copy
b MuhammadHassan
GNU G++17
15 ms
24.1 MB
Wrong Answer