Cod sursa(job #1756365)

Utilizator radoneNeacsu Radu-Stefan radone Data 12 septembrie 2016 18:31:58
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>

using namespace std;

#define maxim(a,b) (a>b?a:b)

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

int n, sum, i_i, i_f, i_ic, i_fc, sumc, x;

int main()
{
    f >> n;

    f >> x;

    sumc = x;
    i_ic = i_fc = 1;

    for( int i = 2; i <= n; ++ i )
    {
        f >> x;

        if( sumc <= 0 )
        {
            sumc = x;
            i_ic = i_fc = i;
        }
        else
        {
            if( x > sumc + x )
            {
                sumc = x;
                i_ic = i_fc = i;
            }
            else
            {

                sumc = sumc + x;
                ++ i_fc;
            }
        }
        if( sumc > sum )
        {
            sum = sumc;
            i_i = i_ic;
            i_f = i_fc;
        }
    }

    g << sum << " " << i_i << " " << i_f;

    return 0;
}