Cod sursa(job #2863137)

Utilizator 21CalaDarius Calaianu 21Cala Data 6 martie 2022 13:16:39
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <stack>
#define NMAX 2000005
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
long long n,best[6000005],s[600005],beg,sf,pozmin;
long long maxi = -2e9,mini=2e9;
int main()
{
    fin >> n;
    for(int i=1;i<=n;++i)
    {
        int x;
        fin >> x;
        s[i]=s[i-1]+x;
        if(s[i]<mini)
        {
            mini=s[i];
            pozmin = i;
        }
        if(i>1)
            best[i]=s[i]-mini;
        else
            best[i]=s[i];
        if(best[i]>maxi)
        {
            maxi = best[i];
            if(i>1)
                beg = pozmin+1;
            else
                beg = 1;
            sf = i;
        }
    }
    fout << maxi<< " " << beg << " " << sf;
    return 0;
}