Pagini recente » Cod sursa (job #814890) | Cod sursa (job #1928943) | Cod sursa (job #3128520) | Monitorul de evaluare | Cod sursa (job #1596984)
#include <iostream>
#include <limits.h>
using namespace std;
int start, finish, auxStart, auxFinish, sum = INT_MIN, auxSum, N, numbers[6000000];
int main()
{
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
cin >> N;
for (int i = 0; i < N; i++)
{
scanf("%d", &numbers[i]);
}
sum = numbers[0];
start = finish = 0;
for (int i = 1; i < N; ++i)
{
if (numbers[i]> auxSum + numbers[i])
{
auxSum = numbers[i];
auxStart = auxFinish = i;
}
else
{
auxSum = auxSum + numbers[i];
auxFinish = i;
}
if (sum < auxSum)
{
sum = auxSum;
start = auxStart;
finish = auxFinish;
}
}
printf("%d %d %d", sum, start + 1, finish + 1);
}