aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Anderson <mark@frontrangerunner.com>2020-04-06 07:44:32 -0600
committerMark Anderson <mark@frontrangerunner.com>2020-04-06 07:44:32 -0600
commitc141a82d20d3ebf8ce3112e30ad048b7cb62f764 (patch)
treeda4b8daf19c831be518a7abdccbab718f3f8ba0e
parent5a0d299f3e690fa52a26325db0e1f386887cbfcc (diff)
downloadperlweeklychallenge-club-c141a82d20d3ebf8ce3112e30ad048b7cb62f764.tar.gz
perlweeklychallenge-club-c141a82d20d3ebf8ce3112e30ad048b7cb62f764.tar.bz2
perlweeklychallenge-club-c141a82d20d3ebf8ce3112e30ad048b7cb62f764.zip
ch-1.p6
-rw-r--r--challenge-055/mark-anderson/raku/ch-1.p626
1 files changed, 26 insertions, 0 deletions
diff --git a/challenge-055/mark-anderson/raku/ch-1.p6 b/challenge-055/mark-anderson/raku/ch-1.p6
new file mode 100644
index 0000000000..e7417ec445
--- /dev/null
+++ b/challenge-055/mark-anderson/raku/ch-1.p6
@@ -0,0 +1,26 @@
+#!/usr/bin/env raku
+
+sub MAIN(Str $binary) {
+ my @LR = (0 .. $binary.chars-1).combinations: 2;
+
+ for (0 .. $binary.chars-1) -> $n {
+ @LR.push(($n, $n));
+ }
+
+ my %results;
+
+ for @LR -> ($l, $r) {
+ my $left = $binary.substr(0, $l);
+ my $middle = $binary.substr($l, $r+1-$l);
+ my $right = $binary.substr($r+1);
+
+ $middle = (("0b" ~ $middle).Int +^ ("0b" ~ "1" x $middle.chars).Int)
+ .fmt("%0" ~ $middle.chars ~ "b");
+
+ my $result = $left ~ $middle ~ $right;
+ %results{"($l, $r)"} = $result.comb(/1/).elems;
+ }
+
+ my $max = %results.values.max;
+ .say if .value == $max for %results.sort;
+}