Cod sursa(job #954333)

Utilizator octavianOctavian Crintea octavian Data 28 mai 2013 22:17:52
Problema Subsecventa de suma maxima Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.79 kb
#include <stdio.h>

#define INF 2000000001

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

    int N;
    int s;
    int best_crt;
    int best_last;
    int start;
    int max_sum;
    int max_start;
    int max_finish;
    int i;

    scanf("%d", &N);

    max_sum = -INF;
    best_last = 0;
    start = 0;
    for (i = 1; i <= N; i++) {
        scanf("%d", &s);

        if (s > best_last + s) {
            best_crt = s;
            start = i;

        } else {
            best_crt = best_last + s;
        }

        if (best_crt > max_sum) {
            max_sum = best_crt;
            max_start = start;
            max_finish = i;
        }

        best_last = best_crt;
    }

    printf("%d %d %d\n", max_sum, max_start, max_finish);

    return 0;
}