2014-01-17 05:32:22 +00:00
|
|
|
require 'set'
|
|
|
|
|
|
2015-02-20 00:35:01 -05:00
|
|
|
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)}
|
2014-01-17 05:32:22 +00:00
|
|
|
|
2015-02-20 00:35:01 -05:00
|
|
|
tests.each do |sets|
|
|
|
|
|
until sets.combination(2).none?{|a,b| a.merge(b) && sets.delete(b) if a.intersect?(b)}
|
2014-01-17 05:32:22 +00:00
|
|
|
end
|
|
|
|
|
p sets
|
|
|
|
|
end
|