Cod sursa(job #1844547)

Utilizator HoriaDruliacHoria Druliac HoriaDruliac Data 10 ianuarie 2017 02:31:56
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
using namespace std;

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

int n,s[6000005],i,dp[6000005],b=-1000000000,mic,mare,aux;

int main()
{
    fin>>n;
    for(i=1; i<=n; i++)
        fin>>s[i];
    dp[1]=s[1];
    for(i=2; i<=n; i++)
    {
        dp[i]=max(s[i], dp[i-1]+s[i]);
    }

    for(i=1; i<=n; i++)
        b=max(b,dp[i]);
    for(i=1; i<=n; i++)
        if(b==dp[i])
        {
            mare=i;
            break;
        }
    mic=mare;
    aux=b;
    while(aux || s[mic]==0 && mic!=0)
    {
        aux-=s[mic] ;
        mic--;
    }
    mic++;
    fout<<b<<' '<<mic<<' '<<mare;


    fin.close();
    fout.close();
    return 0;
}