diff options
| author | Luca Ferrari <fluca1978@gmail.com> | 2023-01-09 09:04:33 +0100 |
|---|---|---|
| committer | Luca Ferrari <fluca1978@gmail.com> | 2023-01-09 09:04:33 +0100 |
| commit | aa53c8f739c6435b7d545b68ccd72a73e1e5d331 (patch) | |
| tree | 6340a229a58f434ce49c46fefb8dc42bbffeb690 /challenge-199 | |
| parent | 80550f6138b2787f9d77365577e5ae1df593d9ff (diff) | |
| download | perlweeklychallenge-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.p6 | 33 |
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; +} |
