Cod sursa(job #3166688)

Utilizator TeofilIacobTeo george TeofilIacob Data 9 noiembrie 2023 11:51:06
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <bits/stdc++.h>
#include <cmath>

using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int n,s[6000010];
int main()
{
    f>>n;
    for(int i=1;i<=n;i++)
        f>>s[i];
    ///subscv de suma maxima= suma partiala pana la i - subscv cu suma minima
    int best=-2000000009,mn=0,index,st,dr;
    for(int i=1;i<=n;i++)
    {
        s[i]=s[i]+s[i-1];///sume partiale
        if(best < s[i]-mn)/// gasesc o suma mai buna
        {
            best=s[i]-mn;
            st=index+1;///poz din stanga si poz din dreapta a subscv maxime
            dr=i;
        }
        if(mn > s[i])/// de unde incep numaratoarea cu minimul sumei sirului
            mn=s[i], index=i;///index = poz de unde incepe secvmin
    }
    g<<best<<' '<<st<<' '<<dr<<'\n';
}