Cod sursa(job #3215679)

Utilizator T1raduTaerel Radu Nicolae T1radu Data 15 martie 2024 11:38:27
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <iostream>
#include <fstream>
#include <stack>
#include <vector>
#include <iterator>
#include <algorithm>

using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
long long n,bestsum=-4294967295,maxel=-4294967295,maxp,bestst,bestdr;
int main()
{
    fin >> n;
    long long st=1,dr=0,sum=0;
    for(int i=1;i<=n;i++)
    {
        int x;
        fin >> x;
        if(maxel<x)
        {
            maxel=x;
            maxp=i;
        }
        sum+=x;
        dr++;
        if(sum<0)
        {
            st=i+1;
            dr=i;
            sum=0;
        }
        else
        {
            if(sum>bestsum)
            {
                bestsum=sum;
                bestst=st;
                bestdr=dr;
            }
        }
    }
    if(maxel>0) fout << bestsum << " " << bestst << " " << bestdr;
    else
    {
        fout << maxel << " " << maxp << " " << maxp;
    }
    return 0;
}