Cod sursa(job #1978847)

Utilizator Mihai_PredaPreda Mihai Dragos Mihai_Preda Data 8 mai 2017 22:38:05
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n;

int v[6000001];
const int INF = (1 << 31);

int main()
{
    in >> n;
    for(int i = 1; i <= n; ++i)
        in >> v[i];

    int mx = -INF;
    int s = 0;
    int inc, sf, c;
    for(int i = 1; i <= n; ++i)
    {
        if(s >= 0)
            s += v[i];
        else
        {
            s = v[i];
            c = i;
        }
        if(s > mx)
        {
            mx = s;
            inc = c;
            sf = i;
        }
        else if(s == mx)
        {
            if(c < inc)
            {
                mx = s;
                inc = c;
                sf = i;
            }
        }
    }
    out << mx << " " << inc << " " << sf;
    return 0;
}