Cod sursa(job #2841964)

Utilizator BarbuceanuConstantinBarbuceanu Constantin BarbuceanuConstantin Data 30 ianuarie 2022 19:47:59
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <fstream>
#include <limits.h>
using namespace std;

const char iname[] = "ssm.in";
const char oname[] = "ssm.out";
const int MAXN = 6000100;
int arr[MAXN], n;

#define FOR(i, a, b) for(int i = (a); i <= (b); ++i)


int main(void) {
    ifstream in(iname); ofstream out(oname);
    in >> n;
	FOR (i, 1, n)  in >> arr[i];
    int bestSum = INT_MIN, sum = 0, beg, end, idx;

    FOR(i, 1, n) {
        if(sum < 0) {
            sum = arr[i], idx = i;
        } else {
            sum += arr[i];
        }
        if (bestSum < sum) {
            bestSum = sum, beg = idx, end = i;
        }
    }
    out << bestSum << " " << beg << " " << end;

    in.close(), out.close();
    return 0;
}