Cod sursa(job #2669503)

Utilizator bibiancapitu2004Pitu Bianca bibiancapitu2004 Data 7 noiembrie 2020 10:07:20
Problema Subsecventa de suma maxima Scor 85
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");

int v[6000001];

int main()
{
    int n,besti,sti,bestf,stf,st,dr;
    in >> n;
    for(int i = 1;i <= n;i++)
    {
       in >> v[i];
    }

    besti = v[1];
    bestf = v[1];
    int  m = v[1];
    sti = 1;stf = 1;st = 1;dr = 1;
    for(int i = 2 ;i <= n;i ++)
    {
        besti = bestf;
        sti = stf;
        if(besti + v[i] >= v[i])
        {
                bestf = besti + v[i];
                stf = sti;
        }
        else
        {
                bestf = v[i];
                stf = i;
        }
        if(m < bestf)
        {
           m = bestf;
           st = stf;
           dr = i;
        }
        else if(m == bestf && stf < st)st = stf;

    }
    out<< m << " "<<stf<< " "<<dr;


    return 0;
}