Pagini recente » Cod sursa (job #810008) | Cod sursa (job #622061) | Cod sursa (job #3227128) | Cod sursa (job #1838727) | Cod sursa (job #3354257)
#include <iostream>
#include <vector>
#include <algorithm>
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;
} else {
lastInd++;
if (i == n)
lastInd--;
}
}
cout << *max_element(dp.begin() + 1, dp.end()) << " " << firstInd << " " << lastInd;
}