Cod sursa(job #3227893)

Utilizator BucsMateMate Bucs BucsMate Data 3 mai 2024 16:16:02
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.05 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

ifstream input("ssm.in");
ofstream output("ssm.out");

int numbers[6005] = {};

int main()
{
    int n;
    input >> n;
    for(int i = 0; i < n; i++){
        input >> numbers[i];
    }
    int prev_sum = numbers[0], max_sum = numbers[0], max_index = 0;
    for(int i = 1; i < n; i++){
        int curr_sum;
        if(prev_sum + numbers[i] > numbers[i]){
            curr_sum = prev_sum + numbers[i];
        }
        else{
            curr_sum = numbers[i];
        }
        if(curr_sum > max_sum){
            max_sum = curr_sum;
            max_index = i;
        }
        prev_sum = curr_sum;
    }
    int sum = 0;
    vector<int> seq;
    int start_index = max_index;
    while(start_index >= 0 && sum != max_sum){
        sum = sum + numbers[start_index];
        seq.push_back(numbers[start_index]);
        start_index--;
    }
    start_index++;
    output << max_sum << " " << start_index+1 << " " << max_index+1;

    return 0;
}