Cod sursa(job #1163153)

Utilizator swim406Teudan Adina swim406 Data 1 aprilie 2014 10:46:44
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <stdio.h>
#include <algorithm>
#define inf 1<<30

using namespace std;

int main() {
    freopen ("ssm.in", "r", stdin);
    freopen ("ssm.out", "w", stdout);
    int N, y, x, maxim, start, finish, st, fin;
    scanf ("%d", &N);
    y = 0;
    maxim = -inf;
    for (int i = 1; i <= N; ++i) {
        scanf ("%d", &x);
        if (y + x > x) {
            y += x;
            if (y > maxim) {
                maxim = y;
                start = st;
                finish = i;
            }
            continue;
        }
        y = x;
        st = i;
        if (y > maxim) {
            maxim = y;
            start = i, finish = i;
        }

    }
    printf ("%d %d %d\n", maxim, start, finish);
    return 0;
}