# your code goes here
require 'tsort'
class Hash
include TSort
alias tsort_each_node each_key
def tsort_each_child(node, &block)
fetch(node).each(&block)
end
end
puts '作業項目'
作業項目名={'イ' => 'おさらをならべる。',
'ロ' => 'スプーンをならべる。',
'ハ' => 'おたんじょうびケーキを、テーブルにならべる。',
'ニ' => 'テーブルクロスをひろげる。'}
p 作業項目名
puts '先行すべき作業項目'
p 先行すべき作業項目= {'イ' => ['ニ'], 'ロ' =>['ハ','イ'],'ハ' =>['イ','ニ'], 'ニ' =>[]}
手順= (先行すべき作業項目.strongly_connected_components)
p '適切な手順は、以下'
手順.each {|項目候補| p 項目候補.map {|作業項目| [作業項目,作業項目名[作業項目]]}}
IyB5b3VyIGNvZGUgZ29lcyBoZXJlCnJlcXVpcmUgJ3Rzb3J0JwoKY2xhc3MgSGFzaAogIGluY2x1ZGUgVFNvcnQKICBhbGlhcyB0c29ydF9lYWNoX25vZGUgZWFjaF9rZXkKICBkZWYgdHNvcnRfZWFjaF9jaGlsZChub2RlLCAmYmxvY2spCiAgICBmZXRjaChub2RlKS5lYWNoKCZibG9jaykKICBlbmQKZW5kCnB1dHMgJ+S9nOalremgheebricK5L2c5qWt6aCF55uu5ZCNPXsn44KkJyA9PiAn44GK44GV44KJ44KS44Gq44KJ44G544KL44CCJywKJ+ODrScgPT4gJ+OCueODl+ODvOODs+OCkuOBquOCieOBueOCi+OAgicsCifjg48nID0+ICfjgYrjgZ/jgpPjgZjjgofjgYbjgbPjgrHjg7zjgq3jgpLjgIHjg4bjg7zjg5bjg6vjgavjgarjgonjgbnjgovjgIInLAon44OLJyA9PiAn44OG44O844OW44Or44Kv44Ot44K544KS44Gy44KN44GS44KL44CCJ30gCnAg5L2c5qWt6aCF55uu5ZCNCnB1dHMgJ+WFiOihjOOBmeOBueOBjeS9nOalremgheebricKcCDlhYjooYzjgZnjgbnjgY3kvZzmpa3poIXnm649IHsn44KkJyA9PiBbJ+ODiyddLCAn44OtJyA9Plsn44OPJywn44KkJ10sJ+ODjycgPT5bJ+OCpCcsJ+ODiyddLCAn44OLJyA9PltdfQrmiYvpoIY9ICjlhYjooYzjgZnjgbnjgY3kvZzmpa3poIXnm64uc3Ryb25nbHlfY29ubmVjdGVkX2NvbXBvbmVudHMpCnAgJ+mBqeWIh+OBquaJi+mghuOBr+OAgeS7peS4iycK5omL6aCGLmVhY2gge3zpoIXnm67lgJnoo5x8IHAg6aCF55uu5YCZ6KOcLm1hcCB7fOS9nOalremgheebrnwgIFvkvZzmpa3poIXnm64s5L2c5qWt6aCF55uu5ZCNW+S9nOalremgheebrl1dfX0K
作業項目
{"イ"=>"おさらをならべる。", "ロ"=>"スプーンをならべる。", "ハ"=>"おたんじょうびケーキを、テーブルにならべる。", "ニ"=>"テーブルクロスをひろげる。"}
先行すべき作業項目
{"イ"=>["ニ"], "ロ"=>["ハ", "イ"], "ハ"=>["イ", "ニ"], "ニ"=>[]}
"適切な手順は、以下"
[["ニ", "テーブルクロスをひろげる。"]]
[["イ", "おさらをならべる。"]]
[["ハ", "おたんじょうびケーキを、テーブルにならべる。"]]
[["ロ", "スプーンをならべる。"]]