Cod sursa(job #2628699)

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

ifstream fin("ssm.in");
ofstream fout("ssm.out");
int sp[6000001];

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

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

        sum += x;

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

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

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

    return 0;
}