fork download
  1. # your code goes here
  2. require 'tsort'
  3.  
  4. class Hash
  5. include TSort
  6. alias tsort_each_node each_key
  7. def tsort_each_child(node, &block)
  8. fetch(node).each(&block)
  9. end
  10. end
  11. puts '作業項目'
  12. 作業項目名={'イ' => 'おさらをならべる。',
  13. 'ロ' => 'スプーンをならべる。',
  14. 'ハ' => 'おたんじょうびケーキを、テーブルにならべる。',
  15. 'ニ' => 'テーブルクロスをひろげる。'}
  16. p 作業項目名
  17. puts '先行すべき作業項目'
  18. p 先行すべき作業項目= {'イ' => ['ニ'], 'ロ' =>['ハ','イ'],'ハ' =>['イ','ニ'], 'ニ' =>[]}
  19. 手順= (先行すべき作業項目.strongly_connected_components)
  20. p '適切な手順は、以下'
  21. 手順.each {|項目候補| p 項目候補.map {|作業項目| [作業項目,作業項目名[作業項目]]}}
  22.  
Success #stdin #stdout 0.01s 6148KB
stdin
Standard input is empty
stdout
作業項目
{"イ"=>"おさらをならべる。", "ロ"=>"スプーンをならべる。", "ハ"=>"おたんじょうびケーキを、テーブルにならべる。", "ニ"=>"テーブルクロスをひろげる。"}
先行すべき作業項目
{"イ"=>["ニ"], "ロ"=>["ハ", "イ"], "ハ"=>["イ", "ニ"], "ニ"=>[]}
"適切な手順は、以下"
[["ニ", "テーブルクロスをひろげる。"]]
[["イ", "おさらをならべる。"]]
[["ハ", "おたんじょうびケーキを、テーブルにならべる。"]]
[["ロ", "スプーンをならべる。"]]