aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author冯昶 <fengchang@novel-supertv.com>2022-11-14 18:30:55 +0800
committer冯昶 <fengchang@novel-supertv.com>2022-11-14 18:30:55 +0800
commit576cd01de7fe9418f8e0b85d7d7f9e5fd3b837a9 (patch)
tree9f756bbb45ac793cd2ef0ae773d3fe57bd31b760
parent377a415bb53d1ed0b16b70d190bb444241216036 (diff)
downloadperlweeklychallenge-club-576cd01de7fe9418f8e0b85d7d7f9e5fd3b837a9.tar.gz
perlweeklychallenge-club-576cd01de7fe9418f8e0b85d7d7f9e5fd3b837a9.tar.bz2
perlweeklychallenge-club-576cd01de7fe9418f8e0b85d7d7f9e5fd3b837a9.zip
challenge 191, raku solutions
-rwxr-xr-xchallenge-191/feng-chang/raku/ch-1.raku6
-rwxr-xr-xchallenge-191/feng-chang/raku/ch-2.raku28
2 files changed, 34 insertions, 0 deletions
diff --git a/challenge-191/feng-chang/raku/ch-1.raku b/challenge-191/feng-chang/raku/ch-1.raku
new file mode 100755
index 0000000000..cfab573b2e
--- /dev/null
+++ b/challenge-191/feng-chang/raku/ch-1.raku
@@ -0,0 +1,6 @@
+#!/bin/env raku
+
+unit sub MAIN(*@N);
+
+my \m = @N.max;
+put @N.grep(!(* == m)).any * 2 > m ?? -1 !! 1;
diff --git a/challenge-191/feng-chang/raku/ch-2.raku b/challenge-191/feng-chang/raku/ch-2.raku
new file mode 100755
index 0000000000..7d6b0ae4b8
--- /dev/null
+++ b/challenge-191/feng-chang/raku/ch-2.raku
@@ -0,0 +1,28 @@
+#!/bin/env raku
+
+unit sub MAIN(UInt:D \n where * > 0);
+
+sub solve(@S is copy, @s is copy) {
+ return 0 if +@S == 0;
+ return 0 if +@S.any == 0;
+
+ #return +@S[0] if +@S == 1;
+ if +@S == 1 {
+ put ' ', (|@s, |@S[0]).join(' ');
+ return +@S[0];
+ }
+
+ my \n = @S[0].shift;
+ my \cnt = solve(@S, @s);
+
+ @S.shift;
+ @S .= map({ $_.grep(!(* == n)).Array });
+ @s.push(n);
+
+ cnt + solve(@S, @s)
+}
+
+my @S = (1..n).map(-> \m { (1..n).grep({ m %% $_ or $_ %% m }).Array });
+put "candidates: {@S.gist}";
+
+put solve(@S, []);