Cod sursa(job #1320032)

Utilizator depevladVlad Dumitru-Popescu depevlad Data 17 ianuarie 2015 15:35:03
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>

using namespace std;

#define MAX 6000001
#define MINUS_INF -(1<<30)
#define inFile "ssm.in"
#define outFile "ssm.out"

int main() {
    ifstream in(inFile);
    ofstream out(outFile);
    
    int n, i, s, best, best_i, min_s, elem, i_min, iStart, iEnd;
    
    best = MINUS_INF;
    min_s = 0;
    s = 0;
    
    in >> n;
    
    for(i = 1; i <= n; i++) {
        in >> elem;
        s += elem;
        best_i = s - min_s;
        if(best < best_i) {
            best = best_i;
            iStart = i_min;
            iEnd = i;
        }
        if(s < min_s) {
            min_s = s;
            i_min = i + 1;
        }
    }
    out << best << " " << iStart << " " << iEnd << '\n';
    return 0;
}