diff options
| -rwxr-xr-x | challenge-124/stuart-little/raku/ch-1.raku | 24 | ||||
| -rwxr-xr-x | challenge-124/stuart-little/raku/ch-2.raku | 22 |
2 files changed, 46 insertions, 0 deletions
diff --git a/challenge-124/stuart-little/raku/ch-1.raku b/challenge-124/stuart-little/raku/ch-1.raku new file mode 100755 index 0000000000..bfd2a26910 --- /dev/null +++ b/challenge-124/stuart-little/raku/ch-1.raku @@ -0,0 +1,24 @@ +#!/usr/bin/env raku +use v6; + +# run <script> + +say q:to/EOF/; + ^^^^^ + ^ ^ + ^ ^ + ^ ^ + ^ ^ + ^ ^ + ^ ^ + ^ ^ + ^ ^ + ^ ^ + ^^^^^ + ^ + ^ + ^ + ^^^^^ + ^ + ^ +EOF diff --git a/challenge-124/stuart-little/raku/ch-2.raku b/challenge-124/stuart-little/raku/ch-2.raku new file mode 100755 index 0000000000..14c4ae87a4 --- /dev/null +++ b/challenge-124/stuart-little/raku/ch-2.raku @@ -0,0 +1,22 @@ +#!/usr/bin/env raku +use v6; + +# run <script> <space-separated numbers> + +sub splt(@set) { + my $sm = @set.sum; + my @low = @set.combinations(@set.elems div 2).grep({ 2*$_.sum <= $sm }).max({ $_.sum }).Array; + my @high = (@set (-) @low).keys; + return @low, @high; +} + +my @nums = (@*ARGS.elems %% 2) ?? (@*ARGS.map(*.Num)) !! ([0,|@*ARGS.map(*.Num)]); +my ($low, $high) = @nums.&splt; +(2*$low.elems > @*ARGS.elems && $low.grep({ $_ == 0}).elems) && do { + $low = ($low (-) (0)).keys.Array; +} || (2*$high.elems > @*ARGS.elems && $high.grep({ $_ == 0}).elems) && do { + $high = ($high (-) (0)).keys.Array; +} + +say $low; +say $high; |
