aboutsummaryrefslogtreecommitdiff
path: root/challenge-199
diff options
context:
space:
mode:
authorLuca Ferrari <fluca1978@gmail.com>2023-01-09 09:04:33 +0100
committerLuca Ferrari <fluca1978@gmail.com>2023-01-09 09:04:33 +0100
commitaa53c8f739c6435b7d545b68ccd72a73e1e5d331 (patch)
tree6340a229a58f434ce49c46fefb8dc42bbffeb690 /challenge-199
parent80550f6138b2787f9d77365577e5ae1df593d9ff (diff)
downloadperlweeklychallenge-club-aa53c8f739c6435b7d545b68ccd72a73e1e5d331.tar.gz
perlweeklychallenge-club-aa53c8f739c6435b7d545b68ccd72a73e1e5d331.tar.bz2
perlweeklychallenge-club-aa53c8f739c6435b7d545b68ccd72a73e1e5d331.zip
Task 2 done
Diffstat (limited to 'challenge-199')
-rw-r--r--challenge-199/luca-ferrari/raku/ch-2.p633
1 files changed, 33 insertions, 0 deletions
diff --git a/challenge-199/luca-ferrari/raku/ch-2.p6 b/challenge-199/luca-ferrari/raku/ch-2.p6
new file mode 100644
index 0000000000..05cc0159a8
--- /dev/null
+++ b/challenge-199/luca-ferrari/raku/ch-2.p6
@@ -0,0 +1,33 @@
+#!raku
+
+# Perl Weekly Challenge 199
+
+sub MAIN(
+ Int $x,
+ Int $y,
+ Int $z,
+ Bool :$verbose = False,
+ *@list where { @list.grep( * ~~ Int ).elems == @list.elems } ) {
+
+
+# a) 0 <= i < j < k <= n (size of given array)
+# b) abs(array[i] - array[j]) <= x
+# c) abs(array[j] - array[k]) <= y
+# d) abs(array[i] - array[k]) <= z
+
+ my @triplets;
+ for 0 ..^ @list.elems -> $i {
+ for $i ^..^@list.elems -> $j {
+ for $j ^..^ @list.elems -> $k {
+ @triplets.push: [ $i, $j, $k, @list[ $i ], @list[ $j ], @list[ $k ] ]
+ if ( ( @list[ $i ] - @list[ $j ] ).abs <= $x
+ && ( @list[ $j ] - @list[ $k ] ).abs <= $y
+ && ( @list[ $i ] - @list[ $k ] ).abs <= $z );
+
+ }
+ }
+ }
+
+ @triplets.elems.say;
+ @triplets.map( { "Indexes $_[0], $_[1], $_[2] are good ($_[3], $_[4], $_[5])" } ).join( "\n" ).say;
+}