Cod sursa(job #2843308)

Utilizator LeonGSLeo Jechiu LeonGS Data 2 februarie 2022 12:18:43
Problema Subsecventa de suma maxima Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <bits/stdc++.h>
using namespace std;

int v[6000005];
long long s[6000005];
long long best[6000005];

int main(){
    ifstream cin("ssm.in");
    ofstream cout("ssm.out");
    int n;
    cin >> n;
    for(int i=1; i<=n; i++){
        cin >> v[i];
        s[i] = s[i-1] + v[i];
    }
    int di, dj;
    s[0] = 0;
    int minim = s[0];
    pair<int, int> p;
    p = {minim, 0};
    int bestsum = INT_MIN;
    for(int i=1; i<=n; i++){
        best[i] = s[i] - minim;
        if(minim>s[i]){
            minim = s[i];
            p = {minim, i};
        }
        if(bestsum < best[i]){
            bestsum = best[i];
            dj = i;
            di = p.second + 1;
        }
    }
    cout << bestsum << ' ' << di << ' ' << dj;
    return 0;
}