Cod sursa(job #2829123)

Utilizator manutrutaEmanuel Truta manutruta Data 8 ianuarie 2022 12:21:07
Problema Subsecventa de suma maxima Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>
using namespace std;

#define cout g

ifstream f("ssm.in");
ofstream g("ssm.out");

#define MAXN 60000002
int n;
int a[MAXN];
int b[MAXN];
int st[MAXN];
int mx, resi;

int main()
{
    f >> n;
    for (int i = 1; i <= n; ++i) {
        f >> a[i];
    }
    for (int i = 1; i <= n; ++i) {
        if (b[i-1] > 0) {
            b[i] = b[i-1]+a[i];
            st[i] = st[i-1];
        } else {
            b[i] = a[i];
            st[i] = i;
        }
    }

    for (int i = 1; i <= n; ++i) {
        if (mx < b[i]) {
            mx = b[i];
            resi = i;
        }
    }

    cout << b[resi] << ' ' << st[resi] << ' ' << resi << endl;

    return 0;
}