Cod sursa(job #1142875)

Utilizator mimisorMimi Birau mimisor Data 14 martie 2014 12:46:30
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n, i, x, smax, s,ist, lg;
int main()
{  fin>>n;
    fin>>x;
    smax=s=x;   //suma maxima
    ist=1;      //indicele de inceput a secv maxime
    lg=1;       //lungimea secv
    for (i=2; i<=n; i++)
    {
        fin>>x;
        if (s<0)
        {
            s=x;    //
            ist=i;
        }
        else
        {
            s=s+x;
            if (smax<s)
            {
                smax=s;
                lg=i-ist+1;
            }
            else
                if (smax==s)
            {
                if (lg>i-ist+1)
                {
                    lg=i-ist+1;
                }
            }
        }
    }
   fout<<smax<<" "<<ist<<" "<<ist+lg-1;
    return 0;
}