Cod sursa(job #3247431)

Utilizator AnduRazvanMindrescu Andu AnduRazvan Data 7 octombrie 2024 18:46:37
Problema Subsecventa de suma maxima Scor 85
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>

using namespace std;

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

int v[7000001], dp[7000001];

int main()
{
    int n, sum = 0, st, dr, mare = -99999999;
    fin >> n;
    for(int i = 1; i <= n; i++)
        fin >> v[i];
    dp[1] = v[1];
    st = 1;
    for(int i = 2; i <= n; i++)
    {
        if(dp[i - 1]  >= 0)
        {
            dp[i] = dp[i - 1] + v[i];
        }
        else
        {
            dp[i] = v[i];
            st = i;
        }
    }
    for(int i = 1; i <= n; i++)
        if(dp[i] > mare)
        {
             mare = dp[i];
             dr = i;
        }
    fout << mare << " " << st << " " << dr;
    return 0;
}