Cod sursa(job #906781)

Utilizator marta_diannaFII Filimon Marta Diana marta_dianna Data 7 martie 2013 09:46:30
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include<fstream>
#define NMAX 6000010

using namespace std;

int n, a[NMAX], mx, pi, pf;

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

void Citeste()
{
    int i;

    f>>n;

    for (i=1; i<=n; ++i) f>>a[i];
}

void Solve()
{
    int i, p=1, sum=0, mx=a[1], pi=1, pf=1;

    for (i=1; i<=n; ++i)
    {
        if (sum<0)
        {
            p=i;
            sum=a[i];
            if (sum>mx)
            {
                mx=sum;
                pi=i; pf=i;
            }
        }
        else
        {
            sum+=a[i];
            if (sum>mx)
            {
                mx=sum;
                pi=p; pf=i;
            }
        }

    }
    g<<mx<<" "<<pi<<" "<<pf<<"\n";
}

int main()
{
    Citeste();

    Solve();

    f.close();
    g.close();
    return 0;
}