Cod sursa(job #3365104)

Utilizator iustinG1314Gorgan Iustin iustinG1314 Data 16 septembrie 2026 21:05:08
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.02 kb
#include <fstream>

using namespace std;
ifstream cin("ssm.in");
ofstream cout("ssm.out");
int v[6000001];
int sp[6000001];
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>v[i];
    }
    //Algoritmul lui Kadane
    /*int scur=0,smax=v[1],stmax=1,drmax=1,sum0=0;
    for(int i=1;i<=n;i++)
    {
        scur+=v[i];
        if(scur>smax)
        {
            smax=scur;
            stmax=sum0+1;
            drmax=i;
        }
        if(scur<0)
        {
            scur=0;
            sum0=i;
        }
    }*/
    //Algoritmul Sume partiale
    for(int i=1;i<=n;i++)
    {
        sp[i]=sp[i-1]+v[i];
    }
    int minsp=0,smax=v[1],stmax=1,drmax=1,x=0;
    for(int i=1;i<=n;i++)
    {
        if(smax<sp[i]-minsp)
        {
            smax=sp[i]-minsp;
            drmax=i;
            stmax=x+1;
        }
        if(sp[i]<minsp)
        {
            minsp=sp[i];
            x=i;
        }
    }
    cout<<smax<<" "<<stmax<<" "<<drmax;
    return 0;
}