Cod sursa(job #899186)

Utilizator tanduraDomnita Dan tandura Data 28 februarie 2013 13:15:11
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <cstdio>
using namespace std;

int n,x[6000001];
int sc,sm=-2000000000,pi,pf,pi1,pf1;

void citire()
{
    freopen ("ssm.in","r",stdin);
    scanf("%d",&n);
    for(int i=1; i<=n; ++i)
        scanf("%d",&x[i]);
}

void rezolvare()
{
    for(int i=1; i<=n; ++i)
    {
        if(sc>0)
        {
            sc+=x[i];
            pf=i;
        }
        else
        {
            sc=x[i];
            pi=i;
            pf=i;
        }
        if(sc>sm)
        {
            sm=sc;
            pi1=pi;
            pf1=pf;
        }
    }
}

void afisare()
{
    freopen ("ssm.out","w",stdout);
    printf("%d %d %d",sm,pi1,pf1);
}

int main()
{
    citire();
    rezolvare();
    afisare();
    return 0;
}