Cod sursa(job #1648633)

Utilizator infomaxInfomax infomax Data 11 martie 2016 11:01:48
Problema Subsecventa de suma maxima Scor 100
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;
}