Pagini recente » Cod sursa (job #725892) | Cod sursa (job #1812092) | Cod sursa (job #2396410) | Cod sursa (job #2874385) | Cod sursa (job #3354256)
#include <iostream>
#include <vector>
using namespace std;
int n;
vector<int> dp;
vector<int> elements;
int main(void) {
cin >> n;
dp.assign(n + 1, 0);
elements.resize(n + 1);
for (int i = 1; i < n + 1; i++) {
cin >> elements[i];
}
dp[1] = elements[1];
int firstInd = 1;
int lastInd = 1;
for (int i = 2; i < n + 1; i++) {
dp[i] = max(elements[i], dp[i-1] + elements[i]);
if (elements[i] > dp[i-1] + elements[i]) {
firstInd = i;
lastInd = i;
continue;
}
if (dp[i] > dp[i-1]) {
lastInd++;
}
}
cout << *max_element(dp.begin() + 1, dp.end()) << " " << firstInd << " " << lastInd;
}