Cod sursa(job #847287)

Utilizator mvcl3Marian Iacob mvcl3 Data 3 ianuarie 2013 17:54:53
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<fstream>
using namespace std;

ifstream f("ssm.in"); ofstream g("ssm.out");

const long long inf = 1000000000000;
const int nmax = 6000009;

int n, s[nmax], best[nmax], st, dr, maxim, minim, a, k;

int main()
{
    f>>n;

    for(int i = 1; i <= n; ++i) f>>a, s[i] = s[i - 1] + a;

    maxim = inf;
    for(int i = 1; i <= n; ++i)
    {
        best[i] = s[i] - minim;
        if(minim > s[i]) minim = s[i], k = i + 1;
        if(maxim < best[i]) maxim = best[i], st = k, dr = i;
    }

    if(st > dr) st = dr;

    g<<maxim<<' '<<st<<' '<<dr<<'\n';
    g.close();

    return 0;
}