Cod sursa(job #1895970)

Utilizator ChiriGeorgeChiriluta George-Stefan ChiriGeorge Data 28 februarie 2017 12:45:18
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
#include <vector>
using namespace std;

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

vector <int> best;
int n, i, l, r, x, s = -0x3f3f3f3f, max_pos, start_pos;

int main()
{
    fin >> n;
    for(i = 1; i <= n; i++)
    {
        fin >> x;
        if(!best.empty() && x < best.back() + x)
        {
            best.push_back(best.back() + x);
            ++r;
        }
        else
        {
            best.clear();
            best.push_back(x);
            l = i;
            r = l;
        }
        if(s < best.back()){
                s = best.back();
                max_pos = r;
                start_pos = l;
        }
    }
    fout << s << ' ' << start_pos << ' ' << max_pos << '\n';
    return 0;
}