Cod sursa(job #1921446)

Utilizator infomaxInfomax infomax Data 10 martie 2017 12:44:45
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>

using namespace std;

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

int n, v[6000003], S, s, ls, ld, lsmax, ldmax;

int main()
{
    F >> n;
    for(int i = 1; i <= n; ++ i)
        F >> v[i];
    S = -1 << 30;
    ls = 1; ld = 1; s = v[1];
    while(ld < n)
    {
        if(s < 0)
            ls = ++ ld, s = v[ld];
        else
            s += v[++ ld];
        if(S < s)
        {
            lsmax = ls;
            ldmax = ld;
            S = s;
        }
    }
    G <<  S << " " << lsmax << " " << ldmax;
    return 0;
}