Cod sursa(job #3164474)

Utilizator asparkCostea Andrei Ioan aspark Data 3 noiembrie 2023 13:23:01
Problema Subsecventa de suma maxima Scor 55
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int v[6000001];
long long s[6000001];

int main()
{
    long long n, sum_min = 1000000000, ind_a = 0;
    fin>>n;
    
    for(int i = 1; i <= n; i++){
        fin>>v[i];
    }
    
    for(int i = 1; i <= n; i++){
        s[i] = s[i - 1] + v[i];
        if(sum_min >= s[i]){
            sum_min = s[i];
            ind_a = i;
        }
    }
    
    
    long long maxx = -1000000000, ind_b = 0;
    for(int i = ind_a; i <= n; i++){
        if(maxx <= s[i] - sum_min){
            maxx = s[i] - sum_min;
            ind_b = i;
        }
    }
    
    fout<<maxx<<" "<<ind_a + 1<<" "<<ind_b;

    return 0;
}