Cod sursa(job #1958088)

Utilizator diib1023Cursi FTW diib1023 Data 8 aprilie 2017 00:03:42
Problema Subsecventa de suma maxima Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include <iostream>
#include <fstream>

using namespace std;

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

    int n,i, current_maximum,global_maximum, right_i;

    in >> n ; int v[n+1];

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

    if (n == 1) out << 1 << v[1] << 1;
    else
    {
            current_maximum = global_maximum = v[1];

        for (i=2;i<=n;i++)
        {
            if (current_maximum + v[i] > v[i]) current_maximum += v[i];
            else current_maximum = v[i];

            if (current_maximum > global_maximum)
            {
                global_maximum = current_maximum;
                right_i = i;
            }
        }

        out << global_maximum << " ";

        for (i=right_i;i>=1;i--)
        {
            global_maximum -= v[i];

            if (global_maximum == 0)
            {
                out << i << " " << right_i;
                break;
            }
        }
    }

    return 0;
}