aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-262/2colours/raku/ch-1.raku12
-rw-r--r--challenge-262/2colours/raku/ch-2.raku16
2 files changed, 28 insertions, 0 deletions
diff --git a/challenge-262/2colours/raku/ch-1.raku b/challenge-262/2colours/raku/ch-1.raku
new file mode 100644
index 0000000000..b574e442b8
--- /dev/null
+++ b/challenge-262/2colours/raku/ch-1.raku
@@ -0,0 +1,12 @@
+#!/usr/bin/env raku
+
+my token integer { 0 | '-'? <[1..9]> <[0..9]>* }
+subset IntList of Str where /^ '(' <integer>* % ',' ')' $/;
+
+sub MAIN(
+ $ints
+) {
+ die 'Please provide valid input for @ints' unless $ints.subst(/\s/, '', :g) ~~ IntList;
+ my Int() @ints = $<integer>;
+ @ints.grep(* != 0).classify(*.sign).map(*.value.elems).max.say;
+} \ No newline at end of file
diff --git a/challenge-262/2colours/raku/ch-2.raku b/challenge-262/2colours/raku/ch-2.raku
new file mode 100644
index 0000000000..95733dc291
--- /dev/null
+++ b/challenge-262/2colours/raku/ch-2.raku
@@ -0,0 +1,16 @@
+#!/usr/bin/env raku
+
+my token integer { 0 | '-'? <[1..9]> <[0..9]>* }
+subset IntList of Str where /^ '(' <integer>* % ',' ')' $/;
+
+sub MAIN(
+ $ints, Int $k
+) {
+ die 'Please provide valid input for @ints' unless $ints.subst(/\s/, '', :g) ~~ IntList;
+ my Int() @ints = $<integer>;
+ @ints.kv.map(-> $index, $value {
+ my $needed-factor = $k div ($k gcd $index);
+ my $next-valid = ceiling(($index + 1) / $needed-factor) * $needed-factor;
+ @ints[$next-valid, $next-valid + $needed-factor ...^ @ints.elems].grep($value).elems
+ }).sum.say;
+} \ No newline at end of file