This commit is contained in:
Ingy döt Net 2013-10-27 22:24:23 +00:00
parent 6f050a029e
commit 776bba907c
3887 changed files with 59894 additions and 7280 deletions

View file

@ -0,0 +1,15 @@
def partition(mask)
return [[]] if mask.empty?
sum = mask.inject(:+)
a = Array.new(sum){|e| e}
res = a.permutation.map do |perm|
mask.map {|num_elts| perm.shift(num_elts).sort }
end
res.uniq
end
[[],[0,0,0],[1,1,1],[2,0,2]].each do |test_case|
p test_case
partition(test_case).each{|part| p part }
puts
end