Cod sursa(job #2289822)

Utilizator niculaestefan22Stefan Niculae niculaestefan22 Data 25 noiembrie 2018 12:58:08
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>

using namespace std;

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


const int nmax=6000005;
int v[nmax];
int n;

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

void solve()
{
    int sum=0,smax=-(1<<30),i,startpoz,endpoz,p1;
    for(i=1;i<=n;i++)
    {
        if(sum<0)
        {
            sum=v[i];
            p1=i;
        }
        else
            sum+=v[i];


        if(sum>smax)
        {
            smax=sum;
            startpoz=p1;
            endpoz=i;
        }
    }
    fout<<smax<<' '<<startpoz<<' '<<endpoz<<'\n';
}

int main()
{
    read();
    solve();
    fout.close();
}