Cod sursa(job #3004893)

Utilizator ili9ca2007Ilinca Maria Popa ili9ca2007 Data 16 martie 2023 17:50:52
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <fstream>

using namespace std;

ifstream cin ("ssm.in");
ofstream cout ("ssm.out");

int main()
{
    int n, a, st, s, smax, stmax, drmax, lmax;
    cin>>n;
    s=0;
    smax=-1000000000;
    st=1;
    for (int i=1; i<=n; i++)
    {
        cin>>a;
        s=s+a;
        if (s>smax)
        {
            smax=s;
            stmax=st;
            drmax=i;
            lmax=drmax-stmax+1;
        }
        else if (s==smax)
        {
            if (st<stmax)
            {
                stmax=st;
                drmax=i;
                lmax=drmax-stmax+1;
            }
            else if (st==stmax)
            {
                if ((i-st+1)<lmax)
                {
                    lmax=i-st+1;
                    drmax=i;
                }
            }
        }
        if (s<0)
        {
            s=0;
            st=i+1;
        }
    }
    cout<<smax<<" "<<stmax<<" "<<drmax;

    return 0;
}