Pagini recente » Cod sursa (job #1388016) | Cod sursa (job #2439628) | Cod sursa (job #775876) | Cod sursa (job #6788) | Cod sursa (job #2683850)
#include <fstream>
using namespace std;
ifstream f("smm.in");
ofstream g("smm.out");
struct suma
{
int sum, i, j;
}dp[6000010];
int n, v[6000010], s, pi, pj;
int main()
{
f >> n;
for (int i=1; i<=n; i++)
f >> v[i];
dp[1].sum = v[1], dp[1].i = 1;
for (int i=2; i<=n; i++)
{
if (dp[i-1].sum + v[i] >= 0)
dp[i].sum = dp[i-1].sum + v[i], dp[i].j = dp[i-1].j + 1, dp[i].i = dp[i-1].i;
else dp[i].sum = v[i], dp[i].i = i, dp[i].j = i;
}
/*for (int i=1; i<=n; i++)
g << dp[i].sum << ' ';
g << '\n';*/
int s = 0;
for (int i=1; i<=n; i++)
if (s < dp[i].sum)
s = dp[i].sum, pi = dp[i].i, pj = dp[i].j;
g << s << ' ' << pi << ' ' << pj << '\n';
}