Cod sursa(job #1196586)

Utilizator Cristian1997Vintur Cristian Cristian1997 Data 8 iunie 2014 14:51:03
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
using namespace std;
#include <fstream>
ifstream fin("ssm.in");
ofstream fout("ssm.out");


int main()
{
    int i, n, a, s=0, smax=0, x=1, xmax, y, ymax, elmax = -2000000000, pozmax;
    fin>>n;
    for(i=1; i<=n; ++i)
    {
        fin>>a;
        if(a>elmax) elmax = a, pozmax = i;
        if(a+s>0) s+=a;
        else x=i+1, s=0;
        if(s>smax) xmax=x, ymax=i, smax=s;
        else if(s==smax && ymax-xmax>i-x) xmax=x, ymax=i;
    }
    if(smax>0) fout<<smax<<' '<<xmax<<' '<<ymax<<'\n';
    else fout<<elmax<<' '<<pozmax<<' '<<pozmax<<'\n';
    return 0;
}