Cod sursa(job #1726439)

Utilizator dcutitoiuCutitoiu Adrian-Nicolae dcutitoiu Data 8 iulie 2016 00:10:57
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>
#include <map>
#include <algorithm>
#include <string>

using namespace std;

int maxf(const int &a, const int &b){
    return a > b ? a : b;
}

int main()
{
    ifstream in("ssm.in");
    ofstream out("ssm.out");

    int N, x, maxim, c_maxim;
    int c_start = 1, c_finish = 1, start, finish;

    in >> N;

    in >> x;
    maxim = c_maxim = x;
    N--;

    for(int i = 1; i <= N; i++){

        in >> x;

        if(x > c_maxim + x){
            c_start = c_finish = i;
            c_maxim = x;
        }
        else{
            c_finish++;
            c_maxim += x;
        }

        if(c_maxim > maxim){
            start = c_start;
            finish = c_finish;
            maxim = c_maxim;
        }
    }

    out << maxim << ' ' << start + 1<< ' ' << finish + 1;

    return 0;
}