Cod sursa(job #1648616)

Utilizator infomaxInfomax infomax Data 11 martie 2016 10:59:10
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>

using namespace std;

ifstream F ("ssm.in");
ofstream G ("ssm.out");

int n,st,dr,sm,Smax,p1,p2,v[6000003],i;
int main()
{
    F>>n;
    for (i=1; i<=n; ++i)
        F>>v[i];

    Smax= 1 << -30;

    sm=v[1];dr=1;st=1;

    if (Smax < sm)
        Smax=sm,
        p1=st,
        p2=dr;

    while (dr <= n)
    {
        if (sm > 0)
            ++dr,
            sm+=v[dr];
        else
            ++dr,
            st=dr,
            sm=v[st];
        if (Smax < sm)
            Smax=sm,
            p1=st,
            p2=dr;
    }

    G<<Smax<<" "<<p1<<" "<<p2;
    return 0;
}