Cod sursa(job #1499305)

Utilizator ZeBuGgErCasapu Andreas ZeBuGgEr Data 10 octombrie 2015 14:41:56
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <fstream>

using namespace std;

int a[6000001];
long long int maxs,b[6000001];
int n;
int maxp;

int main()
{
    maxs=-2000000000;

    ifstream fin("ssm.in");
    ofstream fout("ssm.out");

    fin>>n;

    for(int i=1;i<=n;i++)
    {
        fin>>a[i];
    }

    b[1]=a[1];

    for(int i=2;i<=n;i++)
    {
        if(a[i]+b[i-1]>0&&b[i-1]>0)
        {
            b[i]=a[i]+b[i-1];
        }
        else
        {
            b[i]=a[i];
        }
    }

    for(int i=1;i<=n;i++)
    {
        if(maxs<b[i])
        {
            maxp=i;
            maxs=b[i];
        }
    }

    b[0]=-1;
    fout<<maxs<<" ";
    for(int i=maxp-1;i>=0;i--)
    {
        if(b[i]<0)
        {
            fout<<i+1<<" "<<maxp;
            break;
        }
    }
}