Pagini recente » Cod sursa (job #2247958) | Cod sursa (job #2401507) | Cod sursa (job #2380291) | Cod sursa (job #1980448) | Cod sursa (job #3227898)
#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;
}