Cod sursa(job #1416633)

Utilizator mihai.constantinConstantin Mihai mihai.constantin Data 8 aprilie 2015 16:37:06
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <cstdio>
#define dmax 6000010
using namespace std;

int N; int a[dmax],best[dmax]; int bestSum;

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

    int i,p_i,p_f,idx;

    scanf("%d",&N);
    for(i=1; i<=N; i++) scanf("%d",&a[i]);

    bestSum=a[1];
    for(i=1; i<=N; i++)
    {
        best[i]=a[i];

        if(best[i] < best[i-1]+a[i]) best[i]=best[i-1]+a[i];
        if(bestSum<best[i]) {bestSum=best[i]; p_f=i;}
    }

    int s=0;
    for(i=p_f; i>=1; i--)
    {
        s+=a[i];
        if(s==bestSum) p_i=i;
    }

    printf("%d %d %d",bestSum,p_i,p_f);

    //for(i=1; i<=N; i++) printf("%d ",best[i]);

    return 0;
}