aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchallenge-210/feng-chang/raku/ch-1.raku5
-rwxr-xr-xchallenge-210/feng-chang/raku/ch-2.raku22
2 files changed, 27 insertions, 0 deletions
diff --git a/challenge-210/feng-chang/raku/ch-1.raku b/challenge-210/feng-chang/raku/ch-1.raku
new file mode 100755
index 0000000000..00f85f4f06
--- /dev/null
+++ b/challenge-210/feng-chang/raku/ch-1.raku
@@ -0,0 +1,5 @@
+#!/bin/env raku
+
+unit sub MAIN(*@N where @N.all ~~ Int);
+
+put @N.minmax.map(-> \m { @N.grep(-> \s { abs(m - s) ≤ 1 }).sum }).max;
diff --git a/challenge-210/feng-chang/raku/ch-2.raku b/challenge-210/feng-chang/raku/ch-2.raku
new file mode 100755
index 0000000000..6e76da9bed
--- /dev/null
+++ b/challenge-210/feng-chang/raku/ch-2.raku
@@ -0,0 +1,22 @@
+#!/bin/env raku
+
+unit sub MAIN(*@N where @N.all ~~ Int);
+
+loop {
+ last if [≤] @N».sign;
+
+ for ^(+@N-1) -> $i {
+ if @N[$i].sign > @N[$i+1].sign {
+ @N.splice(
+ $i, 2, do given @N[$i].abs <=> @N[$i+1].abs {
+ when Order::Less { @N[$i+1] }
+ when Order::More { @N[$i] }
+ when Order::Same { [] }
+ }
+ );
+ last;
+ }
+ }
+}
+
+put @N.join(', ');