Cod sursa(job #3338985)

Utilizator Serban_Liviu67Serban Liviu Serban_Liviu67 Data 5 februarie 2026 17:01:14
Problema Subsecventa de suma maxima Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");


int sp[60000005], mini[60000005];
int i,n,a,sump;
int minim=1e9,minidn,maxi=-1e9,start,stop;
int main()
{
    fin>>n;
    if (n==1)
    {
        fin>>a;
        fout<<a<<' '<<1<<' '<<1;
    }
    for (i=1; i<=n; i++)
    {
        fin>>a;
        sump=sump+a;
        sp[i]=sump;
        if (sp[i]<=minim)
        {
            minidn=i;
            mini[i]=minidn;
            minim=sp[i];
        }
        else
        {
            mini[i]=minidn;
        }
    }

    for (i=n; i>=1; i--)
    {
        if (sp[i]-sp[mini[i]]>maxi)
            {
                maxi=sp[i]-sp[mini[i]];
                start=mini[i];
                stop=i;
            }
    }

    fout<<maxi<<' '<<start+1<<' '<<stop;
    return 0;
}