aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark A <andemark@a-iot1t.uch.ad.pvt>2021-08-30 16:44:56 -0600
committerMark A <andemark@a-iot1t.uch.ad.pvt>2021-08-30 16:44:56 -0600
commit5d0d8804def60294f33cd5c023c822577161ed9b (patch)
treecf2f6c9d81c55ca001d39c256912e90066c7bf59
parent37a981a061d0a9899d77accc5ff7ddf93d313a57 (diff)
downloadperlweeklychallenge-club-5d0d8804def60294f33cd5c023c822577161ed9b.tar.gz
perlweeklychallenge-club-5d0d8804def60294f33cd5c023c822577161ed9b.tar.bz2
perlweeklychallenge-club-5d0d8804def60294f33cd5c023c822577161ed9b.zip
ch-1.raku
-rw-r--r--challenge-128/mark-anderson/raku/ch-1.raku26
1 files changed, 21 insertions, 5 deletions
diff --git a/challenge-128/mark-anderson/raku/ch-1.raku b/challenge-128/mark-anderson/raku/ch-1.raku
index edc1859f61..7e33cfec7d 100644
--- a/challenge-128/mark-anderson/raku/ch-1.raku
+++ b/challenge-128/mark-anderson/raku/ch-1.raku
@@ -12,6 +12,22 @@ say "Example 2";
<0 0 0 1>,
<0 0 1 0>);
+say " ";
+
+say "Example 3";
+.say for max-sub-matrix(<1 0 1 0 1 0 1 0 1 0 0 1>,
+ <1 0 1 0 1 0 1 0 1 0 0 1>,
+ <1 0 0 0 1 0 0 0 1 1 0 0>,
+ <1 0 0 0 1 0 0 0 1 1 0 0>,
+ <1 0 0 0 1 0 1 0 1 0 1 1>,
+ <1 0 0 0 1 0 0 0 1 0 0 1>,
+ <1 0 1 0 1 0 1 0 1 0 0 1>,
+ <1 0 1 0 1 0 1 0 1 0 0 0>,
+ <1 0 1 0 1 0 1 0 1 0 0 1>,
+ <1 0 1 0 1 0 1 0 1 0 0 1>,
+ <1 0 1 0 1 0 1 0 1 0 0 0>,
+ <1 0 0 0 0 0 0 0 1 0 1 0>);
+
sub max-sub-matrix(+$matrix)
{
my %h;
@@ -19,18 +35,18 @@ sub max-sub-matrix(+$matrix)
for ^$matrix -> $i
{
- for $matrix[$i].join ~~ m:g/00+/ -> $m
+ for $matrix[$i].join ~~ m:g/00+/
{
- %h{$i}.push: $m.from..$m.pos-1;
+ %h{$i}.push: .from .. .pos-1;
}
}
- for (^$matrix).combinations(2) -> $range
+ for (^$matrix).combinations: 2 -> ($head, $tail)
{
- for [X] %h{$range.head..$range.tail} -> @rows
+ for [X] %h{$head .. $tail} -> @rows
{
my $cols = +([(&)] @rows);
- my $rows = $range.tail - $range.head + 1;
+ my $rows = $tail - $head + 1;
my $area = $rows * $cols;
%results{"$rows x $cols"} = $area;
}