Cod sursa(job #1004954)

Utilizator DaniEsDani Stetcu DaniEs Data 3 octombrie 2013 20:56:47
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <fstream>
#define NMax 6000005
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int N, S[NMax], DP[NMax];
int main()
{
    int maxim=-1, start, finish;
    fin>>N;
    for(int i=1; i<=N; i++)
        fin>>S[i];
    for(int i=1; i<=N; i++)
    {
        DP[i]=max(DP[i-1]+S[i],S[i]);
        if(DP[i]==S[i])
            start=i;
        if(DP[i]>maxim)
        {
            maxim=DP[i];
            finish=i;
        }
    }
    fout<<maxim<<" "<<start<<" "<<finish<<'\n';
}