Cod sursa(job #2121422)

Utilizator omegasFilip Ion omegas Data 3 februarie 2018 17:45:02
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>

using namespace std;

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



int best;

struct seq{
int left;
int right;
int sum;
};





int main()
{
    int x;
    int n,i;
    fin >> n;
    fin >> x;
seq smax, best;


    smax.left = smax.right = 1;
    smax.sum = x;
    best.left = best.right = 1;
    best.sum = x;



    for(i=2;i<=n;++i){
            fin >> x;

        if(x <= x + best.sum)
            best.sum += x,
            best.right++;
        else
            best.left = best.right = i,
            best.sum = x;

        if(smax.sum < best.sum)
            smax.sum = best.sum,
            smax.left = best.left,
            smax.right = best.right;
    }

    fout << smax.sum <<" "<< smax.left <<" "<< smax.right;





    return 0;
}