Cod sursa(job #3246813)

Utilizator AnduRazvanMindrescu Andu AnduRazvan Data 4 octombrie 2024 15:58:15
Problema Subsecventa de suma maxima Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>

using namespace std;

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

int v[1000001], dp[1000001];

int main()
{
    int n, sum = 0, st, dr, mare = -1;
    fin >> n;
    for(int i = 1; i <= n; i++)
        fin >> v[i];
    dp[1] = v[1];
    st = 1;
    for(int i = 1; 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;
}