#include <bits/stdc++.h>
#define int long long
using namespace std;
int n, a[1000005], l[1000005], r[1000005], sum[1000005];
stack<int>s;
signed main()
{
bool f = 0;
while(cin >> n){
if(f) cout << '\n';
else f = 1;
int flag = 0;
while(!s.empty()) s.pop();
for(int i = 1; i <= n; i++)
cin >> a[i];
for(int i = 1; i <= n; i++)
sum[i] = sum[i-1] + a[i];
for(int i = 1; i <= n; i++){
while(!s.empty() && a[s.top()] >= a[i]) s.pop();
l[i] = s.empty()? 0: s.top() + 1;
s.push(i);
}
while(!s.empty()) s.pop();
for(int i = n; i >= 1; i--){
while(!s.empty() && a[s.top()] >= a[i]) s.pop();
r[i] = s.empty()? n: s.top() - 1;
s.push(i);
}
int ans = 0, lans = 1, rans = 1, len = 1;
for(int i = 1; i <= n; i++){
int k = a[i] * (sum[r[i]] - sum[l[i] - 1]);
if(k > ans){
ans = k, lans = l[i], rans = r[i], len = r[i] - l[i];
}
else if(k == ans){
if(r[i] - l[i] < len)
lans = l[i], rans = r[i], len = r[i] - l[i];
if(r[i] - l[i] == len && l[i] < lans)
lans = l[i], rans = r[i], len = r[i] - l[i];
}
}
cout << ans << '\n' << lans << " " << rans << '\n';
}
return 0;
}