Cod sursa(job #3249914)

Utilizator BokorTitanillaBokor Titanilla BokorTitanilla Data 18 octombrie 2024 18:39:16
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>

using namespace std;

int main()
{
    ifstream input ("ssm.in");
    ofstream output ("ssm.out");

    int n;
    input>>n;

    vector<int> tomb(n);
    for (int i=0; i<n; i++)
        input>>tomb[i];

    vector<int> s(n);

    s[0]=tomb[0];
    int beg_index=0, end_index=0, s_max=0;

    s[0]=tomb[0];
    int beg_index=0, end_index=0, s_max=tomb[0], last_beg_index = 0;

    for (int i=1; i<n; i++){
        if(s[i-1] + tomb[i] >= tomb[i]){
            s[i] = s[i-1] + tomb[i];
        }
        else{
            s[i] = tomb[i];
            last_beg_index = i;
        }
        if (s[i]>s_max){

            s_max=s[i];
            beg_index = last_beg_index;
            end_index = i;
        }

    }

    output<<s_max<<" "<<beg_index+1<<" "<<end_index+1;



    return 0;
}