Cod sursa(job #2526759)

Utilizator maria_isailaMaria Isaila maria_isaila Data 19 ianuarie 2020 10:25:54
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int main()
{
    int n, v[6000001], dp[6000001], start[6000001], smax, poz;
    f>>n;
    for(int i=1; i<=n; i++)
    {
        f>>v[i];
    }
    dp[1]=v[1];
    start[1]=1;
    for(int i=2; i<=n; i++)
    {
        if(dp[i-1]<0)
        {
            dp[i]=v[i];
            start[i]=i;
        }
        else
        {
            dp[i]=dp[i-1]+v[i];
            start[i]=start[i-1];
        }
    }
    smax=dp[1];
    for(int i=2; i<=n; i++)
    {
        if(smax<dp[i])
        {
            smax=dp[i];
            poz=i;
        }
    }
    g<<smax<<" "<<start[n]<<" "<<poz;
    return 0;
}