Cod sursa(job #3236727)

Utilizator RuxandraPro12_Metehau Ruxandra Maria RuxandraPro12_ Data 30 iunie 2024 18:03:47
Problema Subsecventa de suma maxima Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include<fstream>
#include<iostream>
#include<algorithm>

using namespace std;

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

int n, s[6000005], mn[6000005], ind_mn[6000005];

int main()
{
    fin >> n;
    for (int i = 1; i <= n; i++) {
        fin >> s[i];
    }
    for (int i = 1; i <= n; i++) {
        s[i] += s[i - 1];
    }
    mn[0] = s[0];
    for (int i = 1; i <= n; i++) {
        mn[i] = min(mn[i - 1], s[i]);
        if (mn[i] == s[i]) {
            ind_mn[i] = i;
        }
        else {
            ind_mn[i] = ind_mn[i - 1];
        }
    }
    int rsp = 0, i1 = 0, j1 = 0;
    for (int j = 1; j <= n; j++) {
        if (rsp < s[j] - mn[j - 1]) {
            rsp = s[j] - mn[j - 1];
            j1 = j;
            i1 = ind_mn[j - 1];
        }
    }
    fout << rsp << " " << i1 + 1 << " " << j1;
    return 0;
}