Pagini recente » Monitorul de evaluare | Cod sursa (job #56836) | Cod sursa (job #2955526) | Cod sursa (job #1041468) | Cod sursa (job #3334554)
#include <fstream>
#include <climits>
#include <algorithm>
#include <cstring>
using namespace std;
ifstream cin("ssm.in");
ofstream cout("ssm.out");
int main()
{
int n, maxs, s, i, v[6000000], start, minstart, end;
cin >> n;
for (i = 1; i <= n; i++)
{
cin >> v[i];
}
///////
s = v[1];
maxs = INT_MIN;
start = 1;
minstart=1;
end=1;
for (i = 2; i <= n; i++)
{
if (s >= 0)
{
s = s + v[i];
}
else
{
s = v[i];
start = i;
}
// cout << s<<" ";
if (s > maxs)
{
maxs = s;
end = i;
minstart = start;
}
if ((s == maxs) && (start == minstart) && (i - start < end - minstart))
{
maxs = s;
end = i;
minstart = start;
}
// cout << maxs<<endl;
}
//////
cout << maxs << " " << minstart << " " << end;
}