Pagini recente » Cod sursa (job #1226848) | Cod sursa (job #2241668) | Cod sursa (job #1492519) | Cod sursa (job #3254714) | Cod sursa (job #1627414)
#include <cstdio>
#include <algorithm>
using namespace std;
int s[6000002], start[6000002];
int main()
{
freopen("ssm.in", "r", stdin);
freopen("ssm.out", "w", stdout);
int n;
scanf("%d", &n);
int smax = -0x3f3f3f3f;
int left;
int right;
for (int i = 1; i <= n; i++)
{
scanf("%d", &s[i]);
start[i] = i;
if (s[i-1] > 0)
{
s[i] += s[i-1];
start[i] = start[i-1];
}
if (s[i] > smax)
{
smax = s[i];
left = start[i];
right = i;
}
else if (s[i] == smax && i-start[i] < right-left)
{
left = start[i];
right = i;
}
}
printf("%d %d %d\n", smax, left, right);
return 0;
}