Cod sursa(job #2721416)

Utilizator MorarCezar12Morar Cezar MorarCezar12 Data 11 martie 2021 19:38:59
Problema Subsecventa de suma maxima Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>

using namespace std;
ifstream cin("ssm.in");
ofstream cout("ssm.out");
int main()
{
    int n;
    cin>>n;
    long long v[n+1]={},s[n+1]={},m[n+1]={},pm[n+1]={};
    //v[i]-sirul; s[i]-suma v[1]+..v[i];m[i]-minim s[1] pana la s[i];
    for(int i=1;i<=n;i++)
    {
        cin>>v[i];
    }
    for(int i=1;i<=n;i++)
    {
        s[i]=s[i-1]+v[i];
    }
    for(int i=1;i<=n;i++)
    {
        m[i]=min(m[i-1],s[i]);
        if(m[i-1]<=s[i])
            pm[i]=pm[i-1];
        else
            pm[i]=i;
    }
    long long rezultat=v[1],st=1,dr=1;
    for(int i=1;i<=n;i++)
    {
        if(rezultat<s[i]-m[i-1])
            {
                rezultat=s[i]-m[i-1];
                st=pm[i-1]+1;
                dr=i;
            }
    }
    cout<<rezultat<<" ";
    cout<<st<<" "<<dr;
    return 0;
}