19 lines
357 B
Plaintext
19 lines
357 B
Plaintext
|
|
|
|
###
|
|
### partition-all
|
|
###
|
|
|
|
## Chapter 5 section 1.1
|
|
|
|
sub partition {
|
|
my ($target, $treasures) = @_;
|
|
return [] if $target == 0;
|
|
return () if $target < 0 || @$treasures == 0;
|
|
|
|
my ($first, @rest) = @$treasures;
|
|
my @solutions = partition($target-$first, \@rest);
|
|
return ((map {[$first, @$_]} @solutions),
|
|
partition($target, \@rest));
|
|
}
|