Cod sursa(job #3227896)

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

using namespace std;

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

int nums[6000005] = {};

int main()
{
    int n;
    input >> n;
    for(int i = 0; i < n; i++){
        input >> nums[i];
    }
    int prev_sum = nums[0], max_sum = nums[0], max_index = 0;
    for(int i = 1; i < n; i++){
        int curr_sum;
        if(prev_sum + nums[i] > nums[i]){
            curr_sum = prev_sum + nums[i];
        }
        else{
            curr_sum = nums[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 + nums[start_index];
        seq.push_back(nums[start_index]);
        start_index--;
    }
    start_index++;
    output << max_sum << " " << start_index+1 << " " << max_index+1;

    return 0;
}