Cod sursa(job #1773124)

Utilizator Timur17Ibram Timur Timur17 Data 7 octombrie 2016 16:17:31
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
int n,v[6000001],maxim,inc,incof,sfr,maxmax;

int main()
{
    ifstream fin("ssm.in");
    ofstream fout("ssm.out");
    fin>>n;
    for(int i=1;i<=n;++i)
    {
        fin>>v[i];
    }
    maxim=0;
    maxmax=0;
    incof=0;
    sfr=0;
    for(int i=1;i<=n;++i)
    {
        maxim=maxim+v[i];
        if(maxim<=0)
        {
            inc=i+1;
            maxim=0;
        }
        if(maxim==maxmax)
        {
            if(i-inc>sfr-incof)
            {
                sfr=i;
                incof=inc;
            }
        }
        if(maxim>maxmax)
        {
            maxmax=maxim;
            incof=inc;
            sfr=i;
        }
    }
    fout<<maxmax<<" "<<incof<<" "<<sfr<<endl;
}