equilibrium_index.sf 425 B

12345678910111213141516171819202122232425
  1. #!/usr/bin/ruby
  2. #
  3. ## https://rosettacode.org/wiki/Equilibrium_index
  4. #
  5. func eq_index(nums) {
  6. var (i, sum, sums) = (0, 0, Hash.new)
  7. nums.each { |n|
  8. sums{2*sum + n} := [] -> append(i++)
  9. sum += n;
  10. }
  11. sums{sum} \\ [];
  12. };
  13. var indices = [
  14. [-7, 1, 5, 2,-4, 3, 0],
  15. [2, 4, 6],
  16. [2, 9, 2],
  17. [1,-1, 1,-1, 1,-1, 1],
  18. ];
  19. indices.each { |x|
  20. say ("%s => %s" % [x, eq_index(x)].map{.dump}...);
  21. };