Pagini recente » Cod sursa (job #1371323) | Cod sursa (job #961367) | Cod sursa (job #2349705) | Cod sursa (job #435128) | Cod sursa (job #1331990)
#include <iostream>
#include <limits.h>
using namespace std;
int main()
{
int X;
int best_begin = -1;
int best_end = -1;
int best_sum = 0;
int current_begin = -1;
int current_sum = 0;
int max_minimum_value = INT_MIN;
int max_minimum_position = -1;
int N; cin >> N;
for (int i = 0; i < N; i++)
{
cin >> X;
if (X < 0)
{
if (X > max_minimum_value)
{
max_minimum_value = X;
max_minimum_position = i;
}
}
int candidate_sum = current_sum + X;
if (candidate_sum > 0)
{
if (current_sum == 0)
{
current_begin = i;
}
current_sum = candidate_sum;
}
else
{
current_sum = 0;
}
if (current_sum > best_sum)
{
best_sum = current_sum;
best_begin = current_begin;
best_end = i;
cout << best_sum << '\n';
}
}
if (best_sum == 0)
{
cout << max_minimum_value << ' ' << max_minimum_position + 1 << ' ' << max_minimum_position + 1;
}
else
{
cout << best_sum << ' ' << best_begin + 1 << ' ' << best_end + 1;
}
return 0;
}