diff options
| author | Mark A <andemark@a-iot1t.uch.ad.pvt> | 2021-08-30 16:44:56 -0600 |
|---|---|---|
| committer | Mark A <andemark@a-iot1t.uch.ad.pvt> | 2021-08-30 16:44:56 -0600 |
| commit | 5d0d8804def60294f33cd5c023c822577161ed9b (patch) | |
| tree | cf2f6c9d81c55ca001d39c256912e90066c7bf59 | |
| parent | 37a981a061d0a9899d77accc5ff7ddf93d313a57 (diff) | |
| download | perlweeklychallenge-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.raku | 26 |
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; } |
