#include <iostream>
#include <fstream>
#include <vector>
class Task {
public:
void solve() {
read_input();
get_result();
}
private:
int n;
std::vector<int> v;
void read_input() {
std::ifstream fin("ssm.in");
fin >> n;
for (int i = 0, x; i < n; i ++) {
fin >> x;
v.push_back(x);
}
fin.close();
}
void get_result() {
int maxSum = 0x80000000, crtSum = 0, startIdx = 0;
int start = 0, end = 0;
for (int i = 0; i < n; i++) {
if (crtSum < 0) {
crtSum = v[i], startIdx = i;
} else {
crtSum += v[i];
}
if (maxSum < crtSum) {
maxSum = crtSum;
start = startIdx;
end = i;
}
}
std::ofstream fout("ssm.out");
fout << maxSum << " " << start + 1 << " " << end + 1;
fout.close();
}
};
int main() {
auto* task = new (std::nothrow) Task();
if (!task) {
std::cerr << "new failed: WTF are you doing? Throw your PC!\n";
return -1;
}
task->solve();
delete task;
return 0;
}