Pagini recente » Cod sursa (job #464697) | Cod sursa (job #1199142) | Cod sursa (job #1906605) | Cod sursa (job #2067776) | Cod sursa (job #2155594)
#include <fstream>
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int n, i, j, x, s, t, st, dr, ma = -(1 << 30) + 1, mi = (1 << 30) - 1;
inline void solve ()
{
if ( t > ma )
{
ma = t;
st = j + 1, dr = i;
}
else if ( t == ma && i - j <= dr - st )
st = j + 1, dr = i;
}
int main()
{
fin >> n >> s;
j = -1;
ma = mi = s;
for ( i = 1; i < n; ++i )
{
fin >> x;
s += x;
t = s - mi;
if ( t < 0 )
{
mi = s;
j = i;
if ( ma < 0 )
{
--j;
solve();
}
}
else
solve();
}
solve();
fout << ma << " " << st + 1 << " " << dr + 1;
}