Cod sursa(job #2174572)

Utilizator infomaxInfomax infomax Data 16 martie 2018 12:36:42
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include <fstream>

using namespace std;

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

int n, st, dr, L, R, v[6000005];
long long S, sm;

int main()
{
    F >> n;
    for(int i = 1; i <= n; ++ i)F >> v[i];
    st=1;dr=2;L=1;R=1;
    S=sm=v[1];
    while(dr<=n){
        if(S+v[dr]>=v[dr]) S+=v[dr++];
        else S=v[dr], st=dr, dr++;
        if(S>sm) sm=S, L=st, R=dr-1;
    }
    G << sm << " " << L << " " << R;
    return 0;
}