Pagini recente » Cod sursa (job #1332902) | Cod sursa (job #1959295) | Cod sursa (job #3174171) | Cod sursa (job #1901393) | Cod sursa (job #2589978)
#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int sum[6000010];
//int minsum[6000010];
//int best[6000010];
//int lft[6000010];
int main()
{
int n;
cin >> n;
for (int i = 1; i <= n; i++)
{
int x;
cin >> x;
sum[i] = x + sum[i - 1];
}
int minsum = sum[0];
int leftSol=0, right=0, left = 0;
int bestSol = -(1<<30);
for (int i = 1; i <= n; i++)
{
if (sum[i] < minsum)
{
left = i;
minsum = min(minsum, sum[i]);
}
int best = sum[i] - minsum;
if (best > bestSol)
{
leftSol = left;
right = i;
bestSol = max(bestSol, best);
}
}
cout << bestSol << ' ' << leftSol+1 << ' ' << right;
return 0;
}