local fmt = require "fmt" local function equilibrium(a) local len = #a local equi = {} if len == 0 then return equi end -- sequence has no indices at all local rsum = a:reduce(|acc, x| -> acc + x) local lsum = 0 for i = 1, len do rsum -= a[i] if rsum == lsum then equi:insert(i) end lsum += a[i] end return equi end local tests = { {-7, 1, 5, 2, -4, 3, 0}, {2, 4, 6}, {2, 9, 2}, {1, -1, 1, -1, 1, -1, 1}, {1}, {} } print("The equilibrium indices for the following sequences are:\n") for tests as test do fmt.print("%24s -> %s", fmt.swrite(test), fmt.swrite(equilibrium(test))) end