Cod sursa(job #1611274)

Utilizator VladTiberiuMihailescu Vlad Tiberiu VladTiberiu Data 23 februarie 2016 23:52:02
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <cstdio>
#include <algorithm>

#define NMax 6000005
using namespace std;

int n,x,mx,finalincep,finalretin,incep;
int best[NMax];
int main()
{
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);
    scanf("%d",&n);
    for(int i = 1; i <= n; ++i){
        scanf("%d",&x);
        if(best[i - 1] + x > x){
            best[i] = best[i - 1] + x;
        }else{
            incep = i;
            best[i] = x;
        }
        if(best[i] > mx){
            mx = best[i];
            finalincep = incep;
            finalretin = i;
        }
    }
    printf("%d %d %d",mx,finalincep,finalretin);
    return 0;
}