Cod sursa(job #2490844)

Utilizator nicolaee2Martinescu Nicolae nicolaee2 Data 11 noiembrie 2019 08:59:53
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <bits/stdc++.h>
using namespace std;

#define NRFEST 10005
#define NMAX 6000000

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

unsigned long long n;
long long v[NMAX];

long long max(unsigned long long x1,unsigned long long x2)
{
    if(x1>x2)
        return x1;
    else return x2;
}

int main()
{
    fin>>n;

    for(int i = 1;i<=n;i++)
        fin>>v[i];




    int idx = 1;
    long long sum=0;
    long long bestSum= -int(2e9);
    int end=0,start=1;

    for(int i = 1;i<=n;i++)
    {
        if(sum < 0)
        {
            sum = v[i];
            idx = i;
        }
        else
        {
            sum+=v[i];
        }
        if(bestSum < sum)
        {
            bestSum = sum;
            start = idx;
            end = i;
        }
    }


    cout<<bestSum<<" "<<start<<" "<<end;

    return 0;
}