Cod sursa(job #3357568)

Utilizator fujyalexAlex Avram fujyalex Data 11 iunie 2026 16:09:45
Problema Subsecventa de suma maxima Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n,x[6000001],i,pi,pf,a,smax,pim,pfm;
int main()
{
    fin>>n;
    fin>>a;
    x[1]=a;
    pi=1;
    pf=1;
    for(i=2; i<=n; i++)
    {
        fin>>a;
        if(a+x[i-1]>a)
        {
            pf++;
            x[i]=a+x[i-1];
        }
        else
        {
            pi=pf=i;
            x[i]=a;
        }
        if(x[i]>smax)
        {
            smax=x[i];
            pim=pi;
            pfm=pf;
        }
        else if(x[i]==smax)
            if(pf-pi<pfm-pim)
            {
                smax=x[i];
                pim=pi;
                pfm=pf;
            }
    }
    fout<<smax<<" "<<pim<<" "<<pfm<<" ";
    return 0;
}