Cod sursa(job #2951900)

Utilizator zarg169Roxana zarg169 Data 7 decembrie 2022 20:12:33
Problema Subsecventa de suma maxima Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
// https://infoarena.ro/problema/ssm - Problem to be solved

#include <fstream>

using namespace std;
int v[1000005];
int Spv[1000005];

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

    int N, Sp = 0, Smin = 1000000, Smax = -1000000, j = 0, Ibeg = 0, Iend = 0;
    fin >> N;
    
    for (int i = 1; i <= N; ++i) {
        fin >> v[i];
        Sp += v[i];
        Spv[i] = Sp;
    }

    for (int i = 1; i <=N; ++i) {
        if (Spv[j] <= Smin) {
            Smin = Spv[j];
            Ibeg = j + 1;
        }
        if (Spv[i] - Smin >= Smax) {
            Smax = Spv[i] - Smin;
            Iend = i;
        }
        j += 1;
    }

    fout << Smax << " " << Ibeg << " " << Iend;
}