Cod sursa(job #415186)

Utilizator dragos.denaDena Dragos dragos.dena Data 10 martie 2010 23:19:09
Problema Subsecventa de suma maxima Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <cstdio>
#include <iostream>
#define max(a,b) (a > b) ? a:b

using namespace std;

int main(int argc, char** argv){
    freopen("ssm.in", "r", stdin);
    freopen("ssm.out", "w", stdout);

    int a1, a2, b1, b2, idi, ide, maxg, idi_crt, n, i;
    idi_crt = idi = ide = 0;

    cin >> n;
    cin >> a1;
    maxg = b1 = a1;
    for(i = 1; i < n; i++){
        cin >> a2;
        b2 = max(a2, a2 + b1);
        if(b2 == a2) idi_crt = i;
        if(maxg < b2) {
            maxg = b2;
            ide = i;
            idi = idi_crt;
        }
        b1 = b2;
        a1 = a2;
    }

    printf("%d %d %d\n", maxg, idi + 1, ide + 1);
    return 0;
}