Cod sursa(job #966250)

Utilizator Impaler_009Mihai Nitu Impaler_009 Data 25 iunie 2013 15:49:21
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>

using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");

struct
{
    int start;
    int sum;
}s[6000001];

int n,maxs,maxi;

int main()
{
    fin>>n;
    for (int i=1; i<=n; i++) fin>>s[i].sum;

    s[1].start=1; maxs=s[1].sum; maxi=1;

    for (int i=2; i<=n; i++)
    {
        if (s[i-1].sum >= 0)
        {
            s[i].sum=s[i].sum+s[i-1].sum;
            s[i].start=s[i-1].start;
        }
        else s[i].start=i;
        if (s[i].sum>maxs)
        {
            maxs=s[i].sum;
            maxi=i;
        }
    }
    fout<<maxs<<" "<<s[maxi].start<<" "<<maxi;
}