Cod sursa(job #2323985)

Utilizator Codrin2004Codrin George Nichifor Codrin2004 Data 20 ianuarie 2019 09:54:50
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n,x,dp[6000001],st,stm,drm,i,maxi;
int main()
{
    fin>>n;
    fin>>x;
    dp[1]=x;
    maxi=x;
    st=1;
    for(i=2;i<=n;i++)
    {
        fin>>x;
        if(x+dp[i-1]<x)
        {
            if(maxi<dp[i-1])
            {
                stm=st;
                drm=i-1;
                maxi=dp[i-1];
            }
            dp[i]=x;
            st=i;
            if(n==i && dp[i]>maxi)
            {
                stm=i;
            }
        }
        else
        {
            dp[i]=dp[i-1]+x;
            if(maxi<dp[i])
            {
                drm=i;
                stm=st;
                maxi=dp[i];
            }
        }

        if(i==n && dp[i]>maxi)
        {
            drm=n;
            maxi=dp[i];
        }
    }
    fout<<maxi<<' '<<stm<<' '<<drm;
    return 0;
}