Cod sursa(job #1503230)

Utilizator mlupseLupse-Turpan Mircea mlupse Data 15 octombrie 2015 19:07:35
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <fstream>
using namespace std;

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

const int NMax = 6000005;
const int oo = 2000000000;
int Max = -oo,Begin=1, End, Start, Finish;

int DP[NMax];
int N;

void ReadandSolve()
{
    fin>>N;

    for(int i = 1; i<=N; ++i)
        {
            int X;
            fin>>X;
            if(X > X + DP[i-1])
                {
                    DP[i] = X;
                    Begin = i;
                    End = i;
                }
            else
                {
                    DP[i] = DP[i-1] + X;
                    End = i;
                }

            if(DP[i] > Max)
                {
                    Max = DP[i];
                    Start = Begin;
                    Finish = End;
                }
        }
}

void Print()
{
   fout<<Max<<" "<<Start<<" "<<Finish<<"\n";
}

int main()
{
    ReadandSolve();
    Print();
    return 0;
}