#include <fstream>
#include <vector>
using namespace std;
void calculate(vector<int> &v, int &best_start, int &best_end, int &max_sum)
{
int n = (int) v.size();
max_sum = v[0];
// suma de la pasul i - 1 pe care incerc sa o maresc cu v[i]
int sum = 0;
// indicele de start al primului termen care formeaza suma de mai sus;
// in bucla de mai jos, i va fi indicele ultimului
int start = 0;
best_start = best_end = 0;
for (int i = 1; i < n; i++) {
if (sum >= 0) {
// cresc suma subsecventei cercetata curent
sum += v[i];
} else {
// ma apuc de verificat o noua subsecventa
sum = v[i];
start = i;
}
if (sum > max_sum) {
best_start = start;
best_end = i;
max_sum = sum;
}
}
}
int main(void)
{
ifstream in("ssm.in");
int n;
in >> n;
vector<int> v(n);
for (int i = 0; i < n; i++)
in >> v[i];
in.close();
int start, end, max_sum;
calculate(v, start, end, max_sum);
ofstream out("ssm.out");
out << max_sum << ' ' << start + 1 << ' ' << end + 1;
out.close();
return 0;
}