Cod sursa(job #2924432)

Utilizator Barbu_MateiBarbu Matei Barbu_Matei Data 2 octombrie 2022 13:30:13
Problema Subsecventa de suma maxima Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 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;
    int max = INT_MIN, min = 0, indexMax, indexMin;
    for (int i = 1; i <= n; ++i) {
        fin >> v[i];
        ps[i] = ps[i - 1] + v[i];
        if (ps[i] > max) {
            max = ps[i];
            indexMax = i;
        }
    }
    for (int i = 1; i <= n; ++i) {
        if (ps[i] < min && i < indexMax) {
            min = ps[i];
            indexMin = i;
        }
    }
    fout << ps[indexMax] - ps[indexMin] << " " << indexMin + 1 << " " << indexMax;
}