Cod sursa(job #2475659)

Utilizator mirceatlxhaha haha mirceatlx Data 17 octombrie 2019 11:57:30
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <fstream>
#include <vector>
#define NMAX 6000005
#define input "ssm.in"
#define output "ssm.out"
using namespace std;

ifstream fin(input);
ofstream fout(output);

vector <int> v;
vector <int> dp;
int N;
int main()
{
    int result = 0, istart , iend;
    int xres, yres;
    fin >> N;
    v.resize(N + 5);
    dp.resize(N + 5);
    for(int i = 1 ; i <= N ; i++)
    {
        fin >> v[i];
    }
    result = v[1];
    istart = iend = 1;
    xres = yres = 1;
    for(int i = 2; i <= N ; i++)
    {
        dp[i] = v[i];
        if(dp[i] < dp[i - 1] + v[i])
        {
            dp[i] = dp[i - 1] + v[i];
            iend = i;
        }
        else
        {
            istart = iend = i;
        }
        if(dp[i] > result)
        {
            result = dp[i];
            xres = istart;
            yres = iend;
        }

    }
    fout << result << " " << xres << " " << yres;
    return 0;
}