Cod sursa(job #1784837)

Utilizator relu.draganDragan Relu relu.dragan Data 20 octombrie 2016 15:55:41
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;
int N;
vector<int> nrs;
ifstream in("ssm.in");
ofstream out("ssm.out");
void read_input()
{
    in >> N;
    nrs.resize(N);
    for (int i = 0; i < N; i++) {
       in >> nrs[i]; 
    }
}
void dyn_ssm()
{
    int maxSum = nrs[0];
    int end = 0;
    int backSum = nrs[0];
    int start = 0;
    int backStart = 0;
    for (int i = 1; i < N; i++) {
        if (nrs[i] < backSum + nrs[i]) {
            backSum = backSum + nrs[i];
        } else {
            backSum = nrs[i];
            backStart = i;
        }
        if (maxSum < backSum) {
            maxSum = backSum; 
            end = i;
            start = backStart;
        }
    }

    out << maxSum << " " << start + 1 << " " << end + 1; 


    

}
int main()
{
    read_input();
    dyn_ssm();
    return 0;
}