Cod sursa(job #1163157)

Utilizator swim406Teudan Adina swim406 Data 1 aprilie 2014 10:48:57
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 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;
}