From b756177a9b501f7b9397704b10b3f09a9402e6db Mon Sep 17 00:00:00 2001 From: Jan Krňávek Date: Sun, 15 Jan 2023 11:55:57 +0100 Subject: solutions week 199 --- challenge-199/wambash/raku/ch-1.raku | 20 ++++++++++++++++++++ challenge-199/wambash/raku/ch-2.raku | 29 +++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 challenge-199/wambash/raku/ch-1.raku create mode 100644 challenge-199/wambash/raku/ch-2.raku 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 +} -- cgit