Cod sursa(job #1528317)

Utilizator tudorgalatanRoman Tudor tudorgalatan Data 19 noiembrie 2015 14:30:28
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#include <climits>

#define NM 6000001

using namespace std;

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

int a[NM];
unsigned n;

int Max_Sub = INT_MIN;
int sum;
unsigned i, aux, L_Lim, R_Lim;

void scan ();
void solve ();
void print ();

int main ()
{
    scan ();
    solve ();
    print ();
    return 0;
}

void scan ()
{
    InF >> n;
    for (i=0; i<n; i++)
        InF >> a[i];
}

void solve ()
{
    for (i=0; i<n; i++)
    {
        if (sum < 0)
        {
            aux = i+1;
            sum = a[i];
        }
        else
            sum += a[i];
        if (sum > Max_Sub)
        {
            Max_Sub = sum;
            L_Lim = aux;
            R_Lim = i+1;
        }
    }
}

void print ()
{
    OutF << Max_Sub << " " << L_Lim << " " << R_Lim;
}