Pagini recente » Cod sursa (job #1232837) | Cod sursa (job #2886200) | Cod sursa (job #1892347) | Cod sursa (job #2407513) | Cod sursa (job #3227895)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream input("ssm.in");
ofstream output("ssm.out");
int numbers[6000005] = {};
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;
}