Cod sursa(job #1571370)

Utilizator PaulHerHerman Paul PaulHer Data 18 ianuarie 2016 00:08:28
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<iostream>
#include<fstream>
#include<limits.h>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int maxim (int a, int b)
{
    if (a>b)
        return a;
    else if (b>a)
        return b;
}
int best[6000001];
int main ()
{
    int n;
    fin>>n;
    int maxim2=-INT_MAX;
    int inceput=0;
    int sfarsit=0;
    for (int i=1;i<=n;i++)
    {
        int x;
        fin>>x;
        best[i]=maxim(best[i-1]+x,x);
        if (best[i]==x)
        {
            inceput=i;
        }
        if (best[i]>maxim2)
        {
            maxim2=best[i];
            sfarsit=i;
        }
    }
    fout<<maxim2<<" "<<inceput<<" "<<sfarsit;
}