Cod sursa(job #526668)

Utilizator DraStiKDragos Oprica DraStiK Data 29 ianuarie 2011 10:01:37
Problema Subsecventa de suma maxima Scor 75
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <algorithm>
using namespace std;

#define INF 0x3f3f3f3f

int n,sum_bst,sum_cur,sum_min,ind_min,ind_st_bst,ind_dr_bst;

void read_solve ()
{
    int i,x;

    sum_bst=-INF;
    scanf ("%d",&n);
    for (i=1; i<=n; ++i)
    {
        scanf ("%d",&x);
        sum_cur+=x;
        if (sum_cur-sum_min>sum_bst)
        {
            sum_bst=sum_cur-sum_min;
            ind_st_bst=ind_min;
            ind_dr_bst=i;
        }
        if (sum_cur<sum_min)
        {
            sum_min=sum_cur;
            ind_min=i;
        }
    }
    printf ("%d %d %d",sum_bst,ind_st_bst+1,ind_dr_bst);
}

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

    read_solve ();

    return 0;
}