Cod sursa(job #2001694)

Utilizator alextodoranTodoran Alexandru Raul alextodoran Data 17 iulie 2017 15:19:43
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include <fstream>
using namespace std;
int n,x[6000002],d[6000002],l[6000002],i,mx,e,in;
int main()
{
    ifstream fin ("ssm.in");
    ofstream fout ("ssm.out");
    fin>>n;
    x[0]=-1;
    for(i=1;i<=n;i++)
    {
        fin>>x[i];
        if(x[i]>d[i-1]+x[i]||i==1)
        {
            d[i]=x[i];
            l[i]=1;
        }
        else
        {
            d[i]=d[i-1]+x[i];
            l[i]=l[i-1]+1;
        }
        if(d[i]>mx||(d[i]==mx&&(i-l[i]+1<in||i==1)))
        {
            mx=d[i];
            e=i;
            in=i-l[i]+1;
        }
    }
    fout<<mx<<" ";
    fout<<in<<" "<<e;
    return 0;
}