Cod sursa(job #2926467)

Utilizator Barbu_MateiBarbu Matei Barbu_Matei Data 17 octombrie 2022 20:12:29
Problema Subsecventa de suma maxima Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <bits/stdc++.h>
using namespace std;

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

const int MAX_LEN = 6000000;
int ps[MAX_LEN + 1], v[MAX_LEN + 1];

int main()  {
    int n;
    fin >> n;
    for (int i = 1; i <= n; ++i) {
        fin >> v[i];
        ps[i] = ps[i - 1] + v[i];
    }
    int maxSum = INT_MIN, minPs = 0, indexMin, indexMax, aux = 0;
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j < i; ++j) {
            if (ps[j] < minPs) {
                minPs = ps[j];
                aux = j;
            }
        }
        if (ps[i] - minPs > maxSum) {
            maxSum = ps[i] - minPs;
            indexMax = i;
            indexMin = aux;
        }
    }
    fout << ps[indexMax] - ps[indexMin] << " " << indexMin + 1 << " " << indexMax;
}