Cod sursa(job #3165386)

Utilizator vladorovOroviceanu Vlad vladorov Data 6 noiembrie 2023 08:58:09
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

int main(){
    ifstream fin("ssm.in");
    ofstream fout("ssm.out");

    int lim; fin>>lim;

    vector<int> ssm(lim), lsm(lim);

    int p_nr; fin>>p_nr;
    ssm[0]=p_nr; ssm[0]=1;

    for(int i=1; i<lim; i++){
        int nr; fin>>nr;

        if(ssm[i-1]+nr>nr){
            ssm[i]=ssm[i-1]+nr;
            lsm[i]=lsm[i-1]+1;
        }else{
            ssm[i]=nr;
            lsm[i]=1;
        }
    }

    int p_smax=0, s_max=INT_MIN;
    for(int i=0; i<lim; i++){
        if(s_max<ssm[i]){
            s_max=ssm[i];
            p_smax=i;
        }
    }

    fout<<s_max<<" "<<p_smax-lsm[p_smax]+2<<" "<<p_smax+1;

    return 0;
}