Cod sursa(job #2628702)

Utilizator mex7Alexandru Valentin mex7 Data 17 iunie 2020 09:25:25
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <bits/stdc++.h>
#define ll long long
using namespace std;

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

int main() {
    int n, x;
    int result = INT_MIN;
    int start = 1, end = 1;
    int maxStart = 1, maxEnd = 1;
    int sum = 0;

    fin >> n;
    for (int i = 1; i <= n; i++) {
        fin >> x;

        sum += x;

        end = i;
        if (x > sum) {
            sum = x;
            start = i;
        }

        if (sum > result) {
            result = sum;
            maxEnd = i;
            maxStart = start;
        } else if (sum == result && maxEnd + 1 - maxStart > end + 1 - start) {
            maxEnd = end;
            maxStart = start;
        }
    }

    fout << result << " " << maxStart << " " << maxEnd;

    return 0;
}