diff options
| -rw-r--r-- | challenge-262/2colours/raku/ch-1.raku | 12 | ||||
| -rw-r--r-- | challenge-262/2colours/raku/ch-2.raku | 16 |
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 |
