Pagini recente » Cod sursa (job #1211730) | Cod sursa (job #1417908) | Cod sursa (job #2258437) | Cod sursa (job #208753) | Cod sursa (job #1973554)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");
int n, maxim = -2000000000, nr = 1, s, d;
int v[6000010], best[6000010];
int main()
{
in >> n;
for (int i = 1; i <= n; i++)
in >> v[i];
for (int i = 1; i <= n; i++)
{
best[i] = max(v[i], best[i-1] + v[i]);
if (best[i] == best[i-1] + v[i])
nr++;
else
nr = 1;
if (best[i] > maxim)
{
maxim = best[i];
d = i;
s = d - nr + 1;
}
if (best[i] == maxim)
{
if (i - nr + 1 < s)
{
d = i;
s = d - nr + 1;
}
else
{
if (i - nr + 1 == s)
{
if (d - s + 1 > i - i + nr - 1)
{
d = i;
s = d - nr + 1;
}
}
}
}
}
out << maxim << ' ' << s << ' ' << d;
return 0;
}