Equilibrium index

Revision as of 09:14, 23 September 2010 by rosettacode>Blue Prawn (new task)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Equilibrium index of a sequence is an index such that the sum of elements at lower indexes is equal to the sum of elements at higher indexes. For example, in a sequence A:

A[0] = -7
A[1] =  1
A[2] =  5
A[3] =  2
A[4] = -4
A[5] =  3
A[6] =  0

3 is an equilibrium index, because:

A[0] + A[1] + A[2] = A[4] + A[5] + A[6]

6 is also an equilibrium index, because:

A[0] + A[1] + A[2] + A[3] + A[4] + A[5] = 0

(sum of zero elements is zero)

7 is not an equilibrium index, because it is not a valid index of sequence A.

Write a function that, given a sequence, returns its equilibrium index (any) or raises an exception if no equilibrium indexes exist.

Assume that the sequence may be very long.