Cod sursa(job #2244906)

Utilizator Cezar211Popoveniuc Cezar Cezar211 Data 24 septembrie 2018 09:38:48
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
vector<int> v;
int n, i, x, sc, sm, im, fm, ic;
int main()
{
    fin >> n;
    for(i=0; i<n; i++)
    {
        fin >> x;
        v.push_back(x);
    }

    sc = sm = v[0];
    im = fm = ic = 0;
    for(i=1; i<n; i++)
    {
        if(sc<=0)
        {
            sc = v[i];
            ic = i;
        }
        else sc+=v[i];

        if(sc > sm)
        {
            sm = sc;
            im = ic;
            fm = i;
        }
        else if(sc == sm && i-ic<fm-im)
        {
            im = ic;
            fm = i;
        }
    }
    cout << sm << ' ' << im+1 << ' ' << fm+1;


    return 0;
}