Cod sursa(job #2649904)

Utilizator zarg169Roxana zarg169 Data 16 septembrie 2020 19:07:41
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <iostream>
#include <fstream>

using namespace std;
int v[6000001];
long long s[6000001];
int answer[6000001];

int main()
{
    ifstream fin ("ssm.in");
    ofstream fout ("ssm.out");
    int n, minim = 6000000, maxim = -6000000, imax = 0, imin = 0;
    fin >> n;

    for (int i = 1; i <= n; ++i) {
        fin >> v[i];
    }
    for (int i = 0; i <= n; ++i) {
        s[i] = 0;
    }

    for (int i = 1; i <= n; ++i) {
        s[i] = s[i - 1] + v[i];
    }

    for (int i = 1; i <= n; ++i) {
        for (int j = 0; j < i; ++j) {
            if (s[j] <= minim) {
                minim = s[j];
                imin = j + 1;
            }
            answer[i] = s[i] - minim;
            if (answer[i] > maxim) {
                maxim = answer[i];
                imax = i;
            }
        }
    }

    cout << maxim << " " << imin << " " << imax;
    return 0;
}