Cod sursa(job #597938)

Utilizator ion_calimanUAIC Ion Caliman ion_caliman Data 24 iunie 2011 00:46:03
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>

using namespace std;

int a[6000001];
int n;
int s=-2000000000,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=0;
    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;
        }
    }
    if (x==0 || x>y) x=1;
    g << s << ' ' << x << ' ' << y;
    return 0;
}