diff options
| author | Andrew Shitov <andy@shitov.ru> | 2020-10-26 10:34:45 +0100 |
|---|---|---|
| committer | Andrew Shitov <andy@shitov.ru> | 2020-10-26 10:34:45 +0100 |
| commit | 4d53563aa219a049d6cf33571501d3ee9234baa8 (patch) | |
| tree | 4f490130fb5486824bd2b8a3ac0cf30511d97c6b | |
| parent | 4eff81498d8791a9aeef7df70741e41bda610a1f (diff) | |
| download | perlweeklychallenge-club-4d53563aa219a049d6cf33571501d3ee9234baa8.tar.gz perlweeklychallenge-club-4d53563aa219a049d6cf33571501d3ee9234baa8.tar.bz2 perlweeklychallenge-club-4d53563aa219a049d6cf33571501d3ee9234baa8.zip | |
Raku solutions by ash, week 84
| -rw-r--r-- | challenge-084/ash/raku/ch-1.raku | 27 | ||||
| -rw-r--r-- | challenge-084/ash/raku/ch-2.raku | 35 |
2 files changed, 62 insertions, 0 deletions
diff --git a/challenge-084/ash/raku/ch-1.raku b/challenge-084/ash/raku/ch-1.raku new file mode 100644 index 0000000000..54cc7d5db6 --- /dev/null +++ b/challenge-084/ash/raku/ch-1.raku @@ -0,0 +1,27 @@ +#!/usr/bin/env raku +# +# Task 1 from +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-084/ +# +# $ raku ch-1.raku 1234 +# 4321 +# +# $ raku ch-1.raku -4321 +# -1234 +# +# $ raku ch-1.raku 2147483647 +# 0 +# +# $ raku ch-1.raku 2147483641 +# 1463847412 +# +# $ raku ch-1.raku -2147483641 +# -1463847412 +# +# $ raku ch-1.raku -2147483647 +# 0 + +unit sub MAIN($n); + +my $r = $n.sign * $n.abs.flip; +say -2147483648 <= $r <= 2147483647 ?? $r !! 0; diff --git a/challenge-084/ash/raku/ch-2.raku b/challenge-084/ash/raku/ch-2.raku new file mode 100644 index 0000000000..d246c14ce1 --- /dev/null +++ b/challenge-084/ash/raku/ch-2.raku @@ -0,0 +1,35 @@ +#!/usr/bin/env raku +# +# Task 2 from +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-084/ + +# Output: 1 for this matrix +# my @m = < 0 1 0 1 >, +# < 0 0 1 0 >, +# < 1 1 0 1 >, +# < 1 0 0 1 >; + +# Output: 4 for this matrix +my @m = < 1 1 0 1 >, + < 1 1 0 0 >, + < 0 1 1 1 >, + < 1 0 1 1 >; + +my $w = @m.elems; +my $h = @m[0].elems; + +my $count = 0; +for ^$w -> $x { + for ^$h -> $y { + for 1..* -> $z { + last if $x + $z >= $w || $y + $z >= $h; + + $count++ if all( + @m[$x; $y ], @m[$x + $z; $y ], + @m[$x; $y + $z], @m[$x + $z; $y + $z] + ); + } + } +} + +say $count; |
