Cod sursa(job #2324009)

Utilizator thedorbulacovschittrter thedorbulacovschi Data 20 ianuarie 2019 10:13:25
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int dp[6000006],x,i,n,start,startmax,stopmax,maxi;
int main()
{
    fin>>n;
    fin>>x;
    dp[1]=x;
    start=1;
    maxi=x;
    for(i=2;i<=n;i++)
    {
        fin>>x;
        if(x>dp[i-1]+x)
        {
            if(dp[i-1]>maxi)
            {
                startmax=start;
                stopmax=i-1;
                maxi=dp[i-1];
            }
            start=i;
            dp[i]=x;
            if(n==i && dp[i]>maxi)
            {
                startmax=i;
            }
        }
        else
        {
            dp[i]=dp[i-1]+x;
            if(maxi<dp[i])
            {
                startmax=start;
                stopmax=i;
                maxi=dp[i];
            }
        }
        if(i==n && dp[i]>maxi)
        {
            stopmax=i;
            maxi=dp[i];
        }
    }
    fout<<maxi<<" "<<startmax<<" "<<stopmax<<'\n';
    return 0;
}