Cod sursa(job #2699699)

Utilizator AndreiStreheStreche Andrei Claudiu AndreiStrehe Data 25 ianuarie 2021 16:54:10
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <fstream>

using namespace std;

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

int i,n,sumamaxima,st,dr,stanga,dreapta;
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];
        }
        else
        {
            st=i;
            dr=i;
        }

        if(subsecvente[i]>sumamaxima)
        {
            sumamaxima=subsecvente[i];
            dr=i;
            stanga=st;
            dreapta=dr;
        }

    }

    st=stanga;
    dr=dreapta;

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

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

    return 0;
}