Cod sursa(job #1301730)

Utilizator somuBanil Ardej somu Data 26 decembrie 2014 12:46:51
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <iostream>
#include <fstream>
#define inf (1<<29)
#define nmax 6000005
using namespace std;

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

int n, x;
int best, st, dr, suma, t;

void solve() {
    int i;
    fin >> n;
    
    suma = 0;
    best = -inf;
    
    for (i = 1; i <= n; i++) {
        fin >> x;
        
        if (suma + x < x) {
            t = i;
            suma = x;
        } else
            suma += x;
    
        if (suma > best) {
            best = suma;
            st = t;
            dr = i;
        }
        
    }
    
    fout << best << " " << st << " " << dr << "\n";
}

int main() {
    solve();
    fin.close();
    fout.close();
    return 0;
}