Pagini recente » Cod sursa (job #1683415) | Cod sursa (job #350528) | Cod sursa (job #3217799) | Cod sursa (job #981458) | Cod sursa (job #2769552)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
const int MAXN = 6e6 + 5;
const int INFINIT = (1 << 31);
int sum[MAXN], best[MAXN];
int main()
{
int n, nr;
fin >> n;
int ans = -INFINIT, minSum = sum[0];
int startIndex = 0, endIndex = 0;
for (int i = 1; i <= n; i++)
{
fin >> nr;
sum[i] = sum[i - 1] + nr;
best[i] = sum[i] - minSum;
if (minSum > sum[i])
{
minSum = sum[i];
startIndex = i;
}
if (best[i] > ans)
{
ans = best[i];
endIndex = i;
}
}
fout << ans << ' ' << startIndex + 1 << ' ' << endIndex;
}
/*
7
5 -6 3 4 -2 3 -3
5 -1 2 6 4 7 4
*/