fork download
  1. # x => [y], x — спрака, y - зависимости
  2. hsh = {6 => [3], 1 => [2], 2 => {}, 3 => {}, 4 => [3], 5 => [1,2] }
  3.  
  4. yoba = ""
  5. until hsh.empty?
  6. spravki = hsh.select {|k,v| v.empty? }.keys
  7. yoba << spravki.join('-') + '-'
  8. spravki.each { |spravka| hsh.delete spravka }
  9. hsh = hsh.map { |k,v| [k, v - spravki] }.to_h
  10. end
  11. puts 'way:', yoba.chop
  12.  
  13.  
Success #stdin #stdout 0.02s 9664KB
stdin
Standard input is empty
stdout
way:
2-3-6-1-4-5