Cod sursa(job #2699686)

Utilizator AndreiStreheStreche Andrei Claudiu AndreiStrehe Data 25 ianuarie 2021 15:41:17
Problema Subsecventa de suma maxima Scor 5
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>

using namespace std;

ifstream f("ssm.in");
ofstream g("ssm.out");

int i,n,sumamaxima,st,dr,nrtermeni;
int nr[6000005],subsecvente[6000005];

int main()
{
    f>>n>>nr[1];

    sumamaxima=nr[1];
    st=1;
    dr=1;

    for(i=2;i<=n;i++)
    {
        f>>nr[i];
        subsecvente[i]=nr[i];

        if(subsecvente[i]<subsecvente[i-1]+nr[i])
        {
            subsecvente[i]=subsecvente[i-1]+nr[i];
            nrtermeni++;
        }
        if(subsecvente[i]>sumamaxima)
        {
            sumamaxima=subsecvente[i];
            dr=i;
            if(nrtermeni==0)
            {
                nrtermeni++;
            }
        }

    }
    st=dr-nrtermeni+1;

    while(nr[st-1]==0 && st>=2)
    {
        st--;
    }
    while(nr[dr+1]==0 && dr<n)
    {
        dr++;
    }

    g<<sumamaxima<<" "<<st<<" "<<dr;

    return 0;
}