Cod sursa(job #2453041)

Utilizator PopescuAndreiAlexandruPopescu Andrei Alexandru PopescuAndreiAlexandru Data 2 septembrie 2019 11:54:16
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.98 kb
#include <iostream>
#include <fstream>

using namespace std;

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

#define nmax 1000000005

int sum=0,n,x,Max=-nmax,a,b,af,bf,nr=0,nrf=0;

int main()
{
    fin>>n;
    a=1;
    for(int i=1;i<=n;i++)
    {
        fin>>x;
        sum+=x;
        b++;
        nr++;
        if(sum>Max)
        {
            Max=sum;
            af=a;
            bf=b;
            nrf=nr;
        }
        else if(sum==Max)
        {
            if(a<af)
            {
                af=a;
                bf=b;
                nrf=nr;
            }
            else if(a==af)
            {
                if(nr<nrf)
                {
                    nrf=nr;
                    bf=b;
                }
            }
        }
        if(sum<0)
        {
            nr=0;
            sum=0;
            a=i+1;
            if(a>n)
                a--;
        }
    }
    fout<<Max<<" "<<af<<" "<<bf<<'\n';
}