#include <iostream> using namespace std; const int N = 10010; // dp保存以第k个元素结束的子序列的最大值, // a保存输入数据,l保存第k个元素结束的子序列的第一个元素的下标 int dp[N], a[N], l[N]; int main() { int n; while(cin >> n && n) { int ans; for(int i = 0; i < n; i ++) cin >> a[i]; dp[0] = a[0], l[0] = 0, ans = 0; for(int i = 1; i < n; i ++) { dp[i] = a[i], l[i] = i; if(dp[i - 1] > 0) { dp[i] += dp[i - 1], l[i] = l[i - 1]; } if(dp[i] > dp[ans]) ans = i; } if(dp[ans] < 0) cout << 0 << ' ' << a[0] <<' ' << a[n - 1] << endl; else cout << dp[ans] << " " << a[l[ans]] << ' ' <<a[ans] << endl; } return 0; } // 64 位输出请用 printf("%lld")