Pagini recente » Cod sursa (job #2454899) | Cod sursa (job #2163627) | Cod sursa (job #2365653) | Cod sursa (job #1469529) | Cod sursa (job #1610865)
#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 6000000 + 1;
const int INF = numeric_limits<int>::min();
int dp[MAX_N];
int start[MAX_N];
int N;
int main()
{
ifstream in("ssm.in");
ofstream out("ssm.out");
in >> N;
for (int i = 1; i <= N; ++i)
{
int x;
in >> x;
if (i > 1 && dp[i - 1] + x >= x)
{
dp[i] = dp[i - 1] + x;
start[i] = start[i - 1];
}
else
{
dp[i] = x;
start[i] = i;
}
}
int best = INF;
int l, r;
for (int i = 1; i <= N; ++i)
{
if (dp[i] > best)
{
best = dp[i];
l = start[i];
r = i;
}
}
out << best << " " << l << " " << r << "\n";
return 0;
}