fork download
  1. h,r={},Random.new;l=(v=(i=eval $stdin.read).flatten.uniq).size
  2. while(h.size<2**l-1)do;h[a=v.sample(1+r.rand(v.size)).sort]||=h[a]||i.reduce($_){|b,o|b||(o&a).size!=1}?1:p(a)end
  3. puts 'done'
Success #stdin #stdout 0.05s 7488KB
stdin
[[1,3,4,7],[1,2,5,6],[3,4,8],[8,9]]
stdout
[2, 7, 8]
[1, 8]
[3, 5, 9]
[6, 7, 8]
[2, 3, 9]
[4, 6, 9]
[2, 4, 9]
[4, 5, 9]
[5, 7, 8]
[3, 6, 9]
done