#include <stdio.h>
int main() {
    for (int n, a0, ai, y, S, L, R, l, al; scanf("%d", &n) == 1 && n > 0;
            printf("%d %d %d\n", y ? S : 0, y ? L : a0, y ? R : ai))
        for (scanf("%d", &a0), y = (S = L = R = al = l = ai = a0) >= 0;
                n > 1 && scanf("%d", &ai); y |= ai >= 0, n--)
            if ((l = l > 0 ? l + ai : (al = ai)) > S) S = l, L = al, R = ai;
}

实际上,根据此题DP的原理,甚至不需要开数组存放所有元素,只需要知道最后一个数即可计算。