Cod sursa(job #1866753)

Utilizator infomaxInfomax infomax Data 3 februarie 2017 14:56:36
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, sm, Smax, dr, st, v[6000005], p1, p2;

int main()
{
    F >> n;
    for(int i = 1; i <= n; ++ i)
        F >> v[i];
    Smax = -1 << 31;
    sm = v[1]; dr = st = 1;
    if(Smax < sm)
        Smax = sm, p1 = p2 = 1;
    while(dr < n)
    {
        if(sm >= 0)
            sm += v[++dr];
        else
            st = ++ dr, sm = v[st];
        if(Smax < sm)
            Smax = sm, p1 = st, p2 = dr;
    }
    G << Smax << " " << p1 << " " << p2;
    return 0;
}