Cod sursa(job #1542640)

Utilizator JibrilCernea Bernard Silvestru Jibril Data 5 decembrie 2015 15:40:40
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <cstdio>

using namespace std;

int main()
{
    int n, i, v, start, finish=0, bestmax=0, startmax=1, finishmax=1, best1, best2;
    freopen("ssm.in", "r", stdin);
    freopen("ssm.out", "w", stdout);
    scanf("%d", &n);
    scanf("%d", &v);
    best1=bestmax = v;
    start=1;
    for(i=2; i<=n; i++){
        scanf("%d", &v);
        if(v>best1+v){
            best2=v;
            start=i;
        }else{
            best2=best1+v;
            if(v<best1+v)
                finish=i;
        }
        if(best2>bestmax){
            bestmax=best2;
            startmax=start;
            finishmax=finish;
        }
        best1=best2;
    }
    if(finish==0) finishmax=startmax;
    printf("%d %d %d", bestmax, startmax, finishmax);
    return 0;
}