Cod sursa(job #1168169)

Utilizator mirceadinoMircea Popoveniuc mirceadino Data 7 aprilie 2014 10:58:13
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 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 = V[1];
    begin = start = stop = 1;

    for(i = 2; 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);
}