Cod sursa(job #3275197)

Utilizator uncle_sam_007ioan bulik uncle_sam_007 Data 9 februarie 2025 13:59:30
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>

using namespace std;

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

const int INF = 1e9;

void solve(){
    int n, x;
    int len = 0, st;
    int res_len, res_dr;
    int max_ending = -INF;
    int res = -INF;
    fin >> n;
    for(int i = 1; i <= n; ++i){
        fin >> x;
        if(max_ending + x < x){
            len = 1;
            max_ending = x;
        }
        else{
            len ++;
            max_ending = max_ending + x;
        }
        if(res < max_ending){
            res = max_ending;
            res_dr = i;
            res_len = len;
        }
    }
    fout << res << " " << res_dr - res_len + 1 << " " << res_dr;
}

int main()
{
    solve();
    return 0;
}