Cod sursa(job #2569603)

Utilizator cyg_Alex_codegicianBarbu Alexandru cyg_Alex_codegician Data 4 martie 2020 12:49:30
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda r3capitusulare Marime 0.7 kb
#include <fstream>
#include <climits>
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
const int nmax=6000005;
int main()
{
    int n,a[nmax],dp[nmax],inc[nmax],poz,rez=INT_MIN;
    fin >> n;
    for (int i=1;i<=n;i++)
    {
        fin >> a[i];
    }
    dp[1]=a[1];
    inc[1]=1;
    for (int i=2;i<=n;i++)
    {
        if (a[i]>dp[i-1]+a[i])
        {
            dp[i]=a[i];
            inc[i]=i;
        }
        else
        {
            dp[i]=dp[i-1]+a[i];
            inc[i]=inc[i-1];
        }
    }
    for (int i=1;i<=n;i++)
    {
        if (dp[i]>rez)
        {
            rez=dp[i];
            poz=i;
        }
    }
    fout << rez << " " << inc[poz] << " " << poz;
}