Pagini recente » Cod sursa (job #2787935) | Cod sursa (job #2948492) | Cod sursa (job #2489606) | Cod sursa (job #350340) | Cod sursa (job #2645262)
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;
int sumPart[100000];
int main()
{
int n, sum = 0, maxSum=INT_MIN,i;
int start,finish = -1;
int local_start = 0;
int k;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
fin >> n;
for(int i = 0 ; i < n ; i++)
{
fin >> sumPart[i];
k = sumPart[i];
sum += k;
if(sum < 0)
{
sum = 0;
local_start = i + 1;
}
else if (sum > maxSum)
{
start = local_start;
finish = i;
maxSum = sum;
}
}
if(finish != -1) fout<<maxSum<<" "<<start + 1<<" "<<finish + 1;
else
{
maxSum = sumPart[0];
start=finish=0;
for(i = 1; i < n ; i++)
{
if(maxSum < sumPart[i])
{
maxSum = sumPart[i];
start=finish=1;
}
}
fout<<maxSum<<" "<<start - 1<<" "<<finish - 1;
}
return 0;
}