Cod sursa(job #800806)

Utilizator Sm3USmeu Rares Sm3U Data 22 octombrie 2012 18:33:20
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <cstdio>

#define max(a, b) ((a > b) ? a : b)

using namespace std;

void citire(){
    int n;
    int maxSecventa = -19999999;
    int inceput;
    int sf;
    int sCurent = maxSecventa;
    int inceputCurent;

    scanf ("%d", &n);
    for (int i = 0; i < n; ++ i){
        int x;
        scanf ("%d", &x);
        if (x + sCurent >= x){
            sCurent += x;
        }else{
            sCurent = x;
            inceputCurent = i;
        }
        if (sCurent > maxSecventa){
            maxSecventa = sCurent;
            inceput = inceputCurent + 1;
            sf = i + 1;
        }
    }

    printf ("%d %d %d\n", maxSecventa, inceput, sf);

}

int main()
{
    freopen ("ssm.in", "r", stdin);
    freopen ("ssm.out", "w", stdout);
    citire();

    return 0;
}