Pagini recente » Cod sursa (job #3349910) | Cod sursa (job #1670559) | Cod sursa (job #1884482) | Cod sursa (job #3304775) | Cod sursa (job #3342537)
#include <bits/stdc++.h>
using namespace std;
int main()
{
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
int n;
scanf("%d", &n);
int result = INT_MIN, left_max = 1, right_max = 1;
int current_sum = 0, current_left;
for(int i = 1; i <= n; i++){
int number;
scanf("%d", &number);
current_sum += number;
if(current_sum < 0){
current_sum = 0;
current_left = i + 1;
}
if(current_sum > result || (current_sum == result && (left_max > current_left || (right_max - left_max + 1 > i - current_left + 1)))){
result = current_sum;
left_max = current_left;
right_max = i;
}
result = max(result, number);
}
printf("%d %d %d", result, left_max, right_max);
return 0;
}