Cod sursa(job #2891322)

Utilizator db_123Balaban David db_123 Data 18 aprilie 2022 11:02:15
Problema Subsecventa de suma maxima Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream cin("ssm.in");
ofstream cout("ssm.out");

int n;
vector<int> v;

void read(){
    cin>>n;
    v.resize(n+1);
    for(int i=1;i<=n;i++){
        cin>>v[i];
    }
}

void solve(){
    int sumMax=0,sum=0,st=1,en=0;
    int str,enr;
    for(int i=1;i<=n;i++){
        if(sum+v[i]>=0){
            sum+=v[i];
            en=i;
        }
        else{
            st=i+1;
            sum=0;
        }
        if(sumMax<sum){
            str=st;
            enr=en;
            sumMax=sum;
        }
        else if(sumMax==sum){
            if(en-st+1<enr-str+1){
                enr=en;
                str=st;
            }
        }
    }
    cout<<sumMax<<" "<<st<<" "<<en;
}

int main()
{
    read();
    solve();
    return 0;
}