Cod sursa(job #1925494)

Utilizator mihailescu_eduardMihailescu Eduard-Florin mihailescu_eduard Data 13 martie 2017 11:55:30
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#define NMax 6000001


using namespace std;

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


// Date de intrare
int v[NMax],N;

int main()
{
    fin >> N;

    for(int i = 1; i<= N; i++){
        fin >> v[i];
    }

    int last = 1, p1 = 1, p2 = 1, Smax = v[1], S = v[1];


    if(S < 0){
        S = 0;
        last = 2;
    }

    for(int i = 2; i<= N; i++){
        S+= v[i];
        if(S < 0){
            S = 0;
            last = i + 1;
        }
        else if(S > Smax){
            Smax = S;
            p1 = last;
            p2 = i;
        }
    }

    fout << Smax << " " << p1 << " " << p2;


    return 0;
}