Pagini recente » Cod sursa (job #1603786) | Cod sursa (job #715127) | Cod sursa (job #2123730) | Cod sursa (job #1578107) | Cod sursa (job #2228015)
#include <bits/stdc++.h>
using namespace std;
int dp[6000001];
int left[6000001];
int main()
{
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int n, maxSum = -(1 << 30), bestLeft, bestRight;
dp[0] = 0;
left[0] = 1;
fin >> n;
for (int i = 1; i <= n; ++i) {
int x;
fin >> x;
dp[i] = x;
left[i] = i;
if (dp[i - 1] >= 0) {
dp[i] += dp[i - 1];
left[i] = left[i - 1];
}
if (maxSum < dp[i]) {
maxSum = dp[i];
bestLeft = left[i];
bestRight = i;
}
}
fout << maxSum << ' ' << bestLeft << ' ' << bestRight;
return 0;
}