diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2023-01-15 21:48:14 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-15 21:48:14 +0000 |
| commit | df1de5c9a9698ec526cfd0b0d14e35a0c09ca70b (patch) | |
| tree | 83f90be3de485137d4648bbcd27dbbb1e7144485 | |
| parent | 590ef398889618c72925983871357130f096e919 (diff) | |
| parent | b756177a9b501f7b9397704b10b3f09a9402e6db (diff) | |
| download | perlweeklychallenge-club-df1de5c9a9698ec526cfd0b0d14e35a0c09ca70b.tar.gz perlweeklychallenge-club-df1de5c9a9698ec526cfd0b0d14e35a0c09ca70b.tar.bz2 perlweeklychallenge-club-df1de5c9a9698ec526cfd0b0d14e35a0c09ca70b.zip | |
Merge pull request #7414 from wambash/challenge-week-199
solutions week 199
| -rw-r--r-- | challenge-199/wambash/raku/ch-1.raku | 20 | ||||
| -rw-r--r-- | challenge-199/wambash/raku/ch-2.raku | 29 |
2 files changed, 49 insertions, 0 deletions
diff --git a/challenge-199/wambash/raku/ch-1.raku b/challenge-199/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..3e27216f66 --- /dev/null +++ b/challenge-199/wambash/raku/ch-1.raku @@ -0,0 +1,20 @@ +#!/usr/bin/env raku + +sub good-pairs (+@list) { + @list + andthen $_, *.repeated ^...^ :!elems + andthen .map: *.elems + andthen .sum +} + +multi MAIN (Bool :test($)!) { + use Test; + is good-pairs(1,2,3,1,1,3),4; + is good-pairs(1,2,3),0; + is good-pairs(1,1,1,1),6; + done-testing; +} + +multi MAIN (*@list) { + say good-pairs @list +} diff --git a/challenge-199/wambash/raku/ch-2.raku b/challenge-199/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..775a065212 --- /dev/null +++ b/challenge-199/wambash/raku/ch-2.raku @@ -0,0 +1,29 @@ +#!/usr/bin/env raku +use v6.e.PREVIEW; + +sub good-triplet (+@ ($a,$b,$c),:$x!,:$y!,:$z!) { + True + && -$x ≤ $a - $b ≤ $x + && -$y ≤ $b - $c ≤ $y + && -$z ≤ $c - $a ≤ $z + andthen .so +} + +sub good-triplets (+@list, :$x,:$y,:$z) { + @list + andthen .combinations(3) + andthen .grep: &good-triplet.assuming: :$x:$y:$z + andthen .elems +} + +multi MAIN (Bool :test($)!) { + use Test; + is good-triplet(3,0,1, :7x:2y:3z), True; + is good-triplets(3,0,1,1,9,7,:7x:2y:3z), 4; + is good-triplets(1,1,2,2,3, :0x:0y:1z), 0; + done-testing; +} + +multi MAIN (*@list, :$x,:$y,:$z) { + say good-triplets @list, :$x,:$y,:$z +} |
