Cod sursa(job #1138281)

Utilizator ThomasFMI Suditu Thomas Thomas Data 9 martie 2014 20:48:08
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <fstream>
using namespace std;

#define NMax 6000001
#define inf 2100000000

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

int n,v[NMax],best[NMax],pr[NMax],mx,p;

int main()
{
    int i;

    best[0]=-inf;
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>v[i];
        if(v[i]>best[i-1]+v[i]) {pr[i]=i;best[i]=v[i];}
        else {pr[i]=pr[i-1];best[i]=best[i-1]+v[i];}
        if(best[i]>mx) {mx=best[i];p=i;}
    }

    g<<mx<<" "<<pr[p]<<" "<<p<<"\n";

    f.close();
    g.close();
    return 0;
}