let input = [| -1; 3; -4; 5; 1; -6; 2; 1 |]
let findEquilibrium (input : int[]) =
let front = Array.copy input
let rear = Array.copy input
for i = 1 to input.Length-1 do
front.[i] <- front.[i] + front.[i-1]
for i in input.Length-2 .. -1 .. 0 do
rear.[i] <- rear.[i] + rear.[i+1]
|> Seq.filter (fun idx -> front.[idx] = rear.[idx])
let findEquilibrium2 (input : int[]) =
let sum = ref (input |> Seq.sum)
for i = 0 to input.Length-1 do
if !sum - n = !acc then yield i
findEquilibrium input |> printfn "%A"
findEquilibrium2 input |> printfn "%A"