Cod sursa(job #2740447)

Utilizator razvan_tanaseTanase Razvan-Andrei razvan_tanase Data 13 aprilie 2021 00:01:32
Problema Subsecventa de suma maxima Scor 15
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>

using namespace std;

const char iname[] = "ssm.in";
const char oname[] = "ssm.out";

int main() {
    ifstream in(iname);
    int n, S, S_max, first = 1, last = 1, nr, min_first = 0;

    in >> n;
    in >> S;

    S_max = S;
    for (int i = 2; i <= n; i++) {
        in >> nr;
        if (S + nr >= nr) {
            S += nr;
        } else {
            S = nr;
            if (first < last) {
                min_first = first;
            }
            first = i;
        }

        if (S > S_max) {
            S_max = S;
            last = i;
        }
    }

    ofstream out(oname);
    if (min_first == 0) {
        out << S_max << " " << first << " " << last;
    } else {
        out << S_max << " " << min_first << " " << last;
    }

    in.close();
    out.close();

    return 0;
}