Cod sursa(job #1168168)

Utilizator mirceadinoMircea Popoveniuc mirceadino Data 7 aprilie 2014 10:56:21
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include<cstdio>

using namespace std;

const int NMAX = 6000000+5;
const int INF = (1<<30);

void Read(),Solve(),Print();

int N,start,stop,best;
int V[NMAX];

int main()
{
    Read();
    Solve();
    Print();

    return 0;
}

void Read()
{
    int i;

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

    scanf("%d",&N);

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

void Solve()
{
    int i,sum,begin;

    sum = best = -INF;

    for(i = 1; i <= N; i++)
    {
        sum += V[i];
        if(sum < V[i])
        {
            sum = V[i];
            begin = i;
        }
        if(sum > best)
        {
            best = sum;
            start = begin;
            stop = i;
        }
    }
}

void Print()
{
    printf("%d %d %d\n",best,start,stop);
}