Cod sursa(job #3140804)

Utilizator al3x.unxUngureanu Alex al3x.unx Data 9 iulie 2023 20:43:08
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
//  --- --- --- --- -   --- -  - ---   *-- *-- -  -  \\ 
//  |_/ |_/ | | |-< |   |-- |\/| |-|    \   \  |\/|  \\ 
//  -   - \ --- --- --- --- -  - - -   --* --* -  -  \\ 

#include <fstream>
#include <limits.h>
using namespace std;

ifstream fin("ssm.in");
ofstream fout("ssm.out");

typedef struct {
    int sum;
    int i;
    int j;
} sol;

int sir[6000005] = {0};
int sp[6000005] = {0};

int main() {
    int n;
    fin >> n;

    for (int i = 1; i <= n; i++) {
        fin >> sir[i];
        sp[i] = sp[i - 1] + sir[i];
    }

    int i_spmin = 0, new_sum = 0;
    sol sol = {INT_MIN, 0, 0};

    for (int j = 1; j <= n; j++) {
        new_sum = sp[j] - sp[i_spmin];

        if (new_sum > sol.sum) {
            sol.sum = new_sum;
            sol.i = i_spmin + 1;
            sol.j = j;
        }

        if (sp[j] < sp[i_spmin]) {
            i_spmin = j;
        }
    }

    fout << sol.sum << ' ' << sol.i << ' ' << sol.j;
    return 0;
}