Cod sursa(job #597933)

Utilizator ion_calimanUAIC Ion Caliman ion_caliman Data 24 iunie 2011 00:27:39
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <fstream>

using namespace std;

int a[6000001];
int n;
int s=0,best;
int x,y,t;
int i;
bool b=0;

int main()
{
    ifstream f("ssm.in");
    ofstream g("ssm.out");

    f >> n;
    for (i=1; i<=n; i++)
    {
        f >> a[i];
        if (a[i]>0) b=1;
    }
    int min;
    if (b)
    {
        for (i=2; i<=n; i++)
            a[i]+=a[i-1];
        for (i=1; i<=n; i++)
        {
            best=a[i]-min;
            if (min>a[i])
            {
                min=a[i];
                t=i+1;
            }
            if (best>s)
            {
                s=best;
                x=t;
                y=i;
            }
        }
    } else
    {
        s=a[1]; x=0; y=0;
        for (i=2; i<=n; i++)
            if (a[i]>s)
            {
                s=a[i];
                x=i;
            }
        y=x;
    }

    g << s << ' ' << x << ' ' << y;
    return 0;
}