Cod sursa(job #2707248)

Utilizator vladstefanVlad Oros vladstefan Data 16 februarie 2021 18:32:03
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n, x, s, sm = 0, st, en, p, nm = 1 << 31;
int main() {
    fin >> n;
    for (int i = 1; i <= n; ++i) {
        fin >> x;
        if (nm <= 0) {
            if (nm < x) {
                nm = x;
                st = i;
            }
        } else {
            s += x;
            if (s < 0) {
                s = 0;
                p = i + 1;
            }
            if (sm < s) {
                sm = s;
                st = p;
                en = i;
            }
        }
    }
    if (nm <= 0) fout << nm << ' ' << st << ' ' << st;
    else fout << sm << ' ' << st << ' ' << en;
}