Cod sursa(job #3248044)

Utilizator Mocanu_Tudor_CristianMocanu Tudor Cristian Mocanu_Tudor_Cristian Data 10 octombrie 2024 17:21:23
Problema Subsecventa de suma maxima Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n, inc, sf, Max, auxinc;

int main()
{
    fin >> n;
    int v[n + 1], dp[n + 1];
    for(int i = 1; i <= n; i++)
    {
        fin >> v[i];
    }
    dp[1] = v[1];
    Max = dp[1];
    inc = 1;
    auxinc = 1;
    sf = 1;
    for(int i = 2; i <= n; i++)
    {
        if(dp[i - 1] > 0)
        {
            dp[i] = dp[i - 1] + v[i];
            if(dp[i] > Max)
            {
                inc = auxinc;
                Max = dp[i];
                sf = i;
            }
        }
        else
        {
            dp[i] = v[i];
            auxinc = i;
            if(dp[i] > Max)
            {
                Max = dp[i];
                sf = i;
            }
        }
    }
    fout << Max << " " << inc << " " << sf;

    return 0;
}