diff options
| author | 冯昶 <fengchang@novel-supertv.com> | 2022-11-14 18:30:55 +0800 |
|---|---|---|
| committer | 冯昶 <fengchang@novel-supertv.com> | 2022-11-14 18:30:55 +0800 |
| commit | 576cd01de7fe9418f8e0b85d7d7f9e5fd3b837a9 (patch) | |
| tree | 9f756bbb45ac793cd2ef0ae773d3fe57bd31b760 | |
| parent | 377a415bb53d1ed0b16b70d190bb444241216036 (diff) | |
| download | perlweeklychallenge-club-576cd01de7fe9418f8e0b85d7d7f9e5fd3b837a9.tar.gz perlweeklychallenge-club-576cd01de7fe9418f8e0b85d7d7f9e5fd3b837a9.tar.bz2 perlweeklychallenge-club-576cd01de7fe9418f8e0b85d7d7f9e5fd3b837a9.zip | |
challenge 191, raku solutions
| -rwxr-xr-x | challenge-191/feng-chang/raku/ch-1.raku | 6 | ||||
| -rwxr-xr-x | challenge-191/feng-chang/raku/ch-2.raku | 28 |
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, []); |
