Cod sursa(job #3227898)

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

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 = nums[max_index];
    int start_index = max_index - 1;
    for(int i = max_index-1; i >= 0; i--){
        sum = sum + nums[i];
        if(sum == max_sum){
            start_index = i;
        }
    }
    output << max_sum << " " << start_index+1 << " " << max_index+1;

    return 0;
}