Simple readable solution


#1

vector Solution::maxset(vector &a) {
int n=a.size();
vector check(n+1,0);
long long int sum=0,max=INT_MIN,tempindex=0;
for(int i=0;i<n;i++)
{
if(a[i]<0)
{
check[i]=1;
if(sum>max)
{
max=sum;
tempindex=i;
}
sum=0;
}
else
{
sum+=a[i];
}

}
if(sum>max)
        {
            max=sum;
            tempindex=n;
        }

vector<int> v;
for(int i=tempindex-1;i>=0;i--)
{
    if(check[i]==1)
    break;
    else
    v.insert(v.begin(),a[i]);
    
}
return v;

}