Cod sursa(job #3338986)

Utilizator DoltuVladDoltu Vlad DoltuVlad Data 5 februarie 2026 17:04:41
Problema Subsecventa de suma maxima Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>

using namespace std;
ifstream cin ("ssm.in");
ofstream cout ("ssm.out");
int sp[6000005];
int mini[600005];
int n,x;
int main()
{
    cin>>n;
    for (int i=1; i<=n; i++)
    {
        cin>>x;
        sp[i]=sp[i-1]+x;
    }
    int     minim=sp[1];
    int iminim=1;
    for (int i=1; i<=n; i++)
    {
        if(sp[i]<minim)
        {
            mini[i]=i;
            iminim=i;
            minim=sp[i];
        }
        else
        {
            mini[i]=iminim;
        }
    }
    int maxim=-1e9;
    int start=0;
    int fin=0;
    for (int i=n; i>=1; i--)
        if (sp[i]-sp[mini[i]]>maxim)
        {
            maxim=sp[i]-sp[mini[i]];
            start=mini[i];
            fin=i;
        }
    cout<<maxim<<' '<<start+1<<' '<<fin;
    return 0;
}