#include <fstream>
#include <vector>
#include <climits>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int main() {
int n;
fin >> n;
vector<int> v(n + 1);
vector<int> dp(n + 1);
vector<int> start_pos(n + 1);
for(int i = 1; i <= n; i++) {
fin >> v[i];
}
dp[1] = v[1];
start_pos[1] = 1;
int suma_maxima = 0;
int best_start = 1;
int best_end = 1;
for(int i = 2; i <= n; i++) {
if(dp[i - 1] >= 0) {
dp[i] = dp[i - 1] + v[i];
start_pos[i] = start_pos[i - 1];
} else {
dp[i] = v[i];
start_pos[i] = i;
}
if(dp[i] > suma_maxima) {
suma_maxima = dp[i];
best_start = start_pos[i];
best_end = i;
}
}
fout << suma_maxima << " " << best_start << " " << best_end << "\n";
return 0;
}