Cod sursa(job #2147109)

Utilizator StanCatalinStanCatalin StanCatalin Data 28 februarie 2018 14:34:17
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

ifstream in("algsort.in");
ofstream out("algsort.out");

int main()
{
    int n,a,i,j,s = 0,smax = 0,st,dr,stmax = 0,drmax = 0;
    in >> n;
    in >> s;
    smax = s;
    st = 1;
    if (s < 0)
        s = 0;
    for (i=2; i<=n; i++)
    {
        in >> a;
        s += a;
        if (s == smax && (drmax - stmax > i - st))
        {
            stmax = st;
            drmax = i;
        }
        if (s > smax)
        {
            smax = s;
            stmax = st;
            drmax = i;
        }
        if (s < 0)
        {
            s = 0;
            st = i+1;
        }
    }
    out << smax << " " << stmax << " " << drmax;
    return 0;
}