aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Shitov <andy@shitov.ru>2020-10-26 10:34:45 +0100
committerAndrew Shitov <andy@shitov.ru>2020-10-26 10:34:45 +0100
commit4d53563aa219a049d6cf33571501d3ee9234baa8 (patch)
tree4f490130fb5486824bd2b8a3ac0cf30511d97c6b
parent4eff81498d8791a9aeef7df70741e41bda610a1f (diff)
downloadperlweeklychallenge-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.raku27
-rw-r--r--challenge-084/ash/raku/ch-2.raku35
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;