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