Pagini recente » Cod sursa (job #2023517) | Cod sursa (job #2425731) | Cod sursa (job #1489297) | Cod sursa (job #865123) | Cod sursa (job #1369226)
#include <iostream>
#include <fstream>
#define nmax 6000005
#define inf 1<<30
using namespace std;
int n, lo, hi, Max, b;
int s[nmax], dp[nmax];
int main() {
ifstream fin("ssm.in");
ofstream fout("ssm.out");
fin >> n;
for (int i = 1; i <= n; i++)
fin >> s[i];
dp[1] = s[1];
Max = -inf;
for (int i = 2; i <= n; i++)
if (dp[i-1] + s[i] > s[i]) {
dp[i] = dp[i-1] + s[i];
if (dp[i] > Max) {
lo = b;
hi = i;
Max = dp[i];
}
} else {
dp[i] = s[i];
b = i;
}
fout << Max << " " << lo << " " << hi << "\n";
fin.close();
fout.close();
return 0;
}