Cod sursa(job #2843316)

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

int v[6000005];
int s[6000005];
int 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;
    int minim = s[0];
    int actual = 1;
    int bestsum = INT_MIN;
    for(int i=1; i<=n; i++){
        best[i] = s[i] - minim;
        if(minim>s[i]){
            minim = s[i];
            actual = i + 1;
        }
        if(bestsum < best[i]){
            bestsum = best[i];
            dj = i;
            di = actual;
        }
    }
    cout << bestsum << ' ' << di << ' ' << dj;
    return 0;
}