Cod sursa(job #2495845)

Utilizator sunt_grozavPetre OMpirescu sunt_grozav Data 19 noiembrie 2019 21:31:21
Problema Subsecventa de suma maxima Scor 55
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <iostream>
#include <fstream>
#define maxim 6000001

using namespace std;

ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int V[maxim], N, S[maxim], M, R = -2147483647, in, jn, im;

int main()
{
    fin >> N;
    for (int i = 1; i <= N; i++) {
        fin >> V[i];
        S[i] = S[i - 1] + V[i];
    }
    for (int i = 1; i <= N; i++) {
        if (S[i] - M > R && in < i + 1) {
            R = S[i] - M;
            jn = i;
            in = im;
        }
        if (S[i] < M) {
            im = i + 1;
            M = S[i];
        }
        cout << in << ' ' << jn << ' ' << R << endl;
    }
    fout << R << ' ' << in << ' ' << jn;
    return 0;
}