Cod sursa(job #3142414)

Utilizator buntaruButnaru Petre buntaru Data 21 iulie 2023 10:32:14
Problema Subsecventa de suma maxima Scor 75
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream fin("ssm.in");
ofstream fout("ssm.out");

int n , x , s[6000005] , mini , smin[6000005] , stg[6000005];

int main()
{
    int dr , sg , nr;
    fin>>n;
    for(int i=1 ; i<=n ; i++){
        fin>>x;
        s[i]=s[i-1]+x;
        if(i == 1){
            mini=i;
        }
        else if((i!=1)&&(s[i] < s[mini])&&(i!=n)){
            mini=i;
        }
        smin[i]=s[mini];
        stg[i]=mini;
    }
    nr=s[1];
    for(int i=2 ; i<=n ; i++)
        if((s[i]-smin[i-1])>nr){
            nr=s[i]-smin[i-1];
            dr=i;
            sg=stg[i-1]+1;
        }
    fout<<nr<<' '<<sg<<' '<<dr;
    return 0;
}