Cod sursa(job #2832058)

Utilizator Maria-BorcaBorca Maria Maria-Borca Data 12 ianuarie 2022 18:42:45
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <bits/stdc++.h>    /* printf, scanf, puts, NULL */
#include <stdlib.h>     /* srand, rand */
#include <time.h>

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

int main() {
    int n, x, max = INT_MIN, start, finish, s = 0, startMax;
    fin >> n;
    for (int i = 1; i <= n; i ++) {
        fin >> x;
        if (s + x > x) {
            s += x;
        }
        else {
            s = x;
            start = i;
        }
        if (max < s) {
            finish = i;
            startMax = start;
            max = s;
        }
        else if (max == s) {
            if (finish - startMax > i - start) {
                finish = i;
                startMax = start;
            }
        }
    }

    fout << max << ' ' << startMax << ' ' << finish;
    return 0;
}