Cod sursa(job #1922143)

Utilizator ShutterflyFilip A Shutterfly Data 10 martie 2017 16:11:10
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <stdio.h>
using namespace std;

long long best[1000001];
long long buffer[1000001];
int maxSUM = 0, minSUM = 1000000;
int mx, mi;
int SUM;

int main () {
    freopen("ssm.in", "r", stdin);
    freopen("ssm.out", "w", stdout);
    int Load;
    cin >> Load;
    for (int i = 1; i <= Load; i++) {
        cin >> buffer[i];
        if (best [i - 1] > 0)
            best[i] = best[i-1] + buffer[i];
        else best[i] = buffer[i];

        if (best[i] > maxSUM)
            maxSUM = best[i], mx = i;

        if (best[i] < minSUM)
            minSUM = best[i], mi = i;
    }

    for (int x = mi + 1; x <= mx; x++)
        SUM += buffer[x], cout << buffer[x] << " ";

    if (best[mi] > 0)
        cout << best[mx] << " " << 1 << " " << mx;
    else
        cout << best[mx] << " " << mi+1 << " " << mx;
}