// // Created by CyIce on 2021/1/30. // //最大连续子序列和 #include <stdio.h> const int MAXN = 10010; int N, A[MAXN], dp[MAXN], S[MAXN]; int main() { int index; scanf("%d", &N); while (N != 0) { for (int i = 0; i < N; ++i) { scanf("%d", &A[i]); } dp[0] = A[0]; index = 0; S[0] = 0; for (int i = 1; i < N; ++i) { if (A[i] > dp[i - 1] + A[i]) { dp[i] = A[i]; S[i] = A[i]; if (dp[i] > dp[index]) { index = i; } } else { dp[i] = dp[i - 1] + A[i]; S[i] = S[i - 1]; if (dp[i] > dp[index]) { index = i; } } } if (dp[index] < 0) { printf("%d %d %d\n", 0, A[0], A[N - 1]); } else { printf("%d %d %d\n", dp[index], S[index], A[index]); } scanf("%d", &N); } return 0; }