14 lines
341 B
Ruby
14 lines
341 B
Ruby
require 'set'
|
|
|
|
tests = [[[:A,:B], [:C,:D]],
|
|
[[:A,:B], [:B,:D]],
|
|
[[:A,:B], [:C,:D], [:D,:B]],
|
|
[[:H,:I,:K], [:A,:B], [:C,:D], [:D,:B], [:F,:G,:H]]]
|
|
tests.map!{|sets| sets.map(&:to_set)}
|
|
|
|
tests.each do |sets|
|
|
until sets.combination(2).none?{|a,b| a.merge(b) && sets.delete(b) if a.intersect?(b)}
|
|
end
|
|
p sets
|
|
end
|