Cod sursa(job #1138302)

Utilizator ThomasFMI Suditu Thomas Thomas Data 9 martie 2014 21:09:02
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>
using namespace std;

#define NMax 6000001
#define inf 2100000000

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

int n,best[NMax],pr[NMax],mx=-inf,p;

int main()
{
    int i,a;

    f>>n;

    best[0]=-inf;

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

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

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