Cod sursa(job #906751)

Utilizator marta_diannaFII Filimon Marta Diana marta_dianna Data 7 martie 2013 08:34:20
Problema Subsecventa de suma maxima Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 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=a[1], mx=a[1], pi=1, pf=1;

    for (i=2; i<=n; ++i)
    {
        sum+=a[i];

        if (sum>mx)
        {
            mx=sum;
            pi=p; pf=i;
        }
        if (sum<0)
        {
            p=i;
            sum=a[i];
        }
    }
    g<<mx<<" "<<pi<<" "<<pf<<"\n";
}

int main()
{
    Citeste();

    Solve();

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