f = a \[Function] 
       With[{A = UpperTriangularize[Outer[Plus, Join[{0}, -Most[#]], #, 1] &[Accumulate[a]]]},
        MaximalBy[
          Flatten[MapIndexed[{x, i} \[Function] {x, i}, A, {2}], 1], 
          First
          ][[1]]
        ];

    {sum, pos} = f[{1, 2, 3, 4, 5, -1, 7, -4, -2}]

> {21, {1, 7}}