aboutsummaryrefslogtreecommitdiff
path: root/challenge-086/feng-chang
diff options
context:
space:
mode:
author冯昶 <fengchang@novel-supertv.com>2020-11-17 14:27:55 +0800
committer冯昶 <fengchang@novel-supertv.com>2020-11-17 14:27:55 +0800
commit1a04900a0b39cba6c3adb9525543233d8ff32a54 (patch)
treebd0ea35ddcb676bde7cf501fb5eb25178842f99b /challenge-086/feng-chang
parent1742d1884a3e2957a2cc03fb2db5339a86bd0e63 (diff)
downloadperlweeklychallenge-club-1a04900a0b39cba6c3adb9525543233d8ff32a54.tar.gz
perlweeklychallenge-club-1a04900a0b39cba6c3adb9525543233d8ff32a54.tar.bz2
perlweeklychallenge-club-1a04900a0b39cba6c3adb9525543233d8ff32a54.zip
modify challenge 086, raku solutions
Diffstat (limited to 'challenge-086/feng-chang')
-rwxr-xr-xchallenge-086/feng-chang/raku/ch-1b.raku15
-rwxr-xr-xchallenge-086/feng-chang/raku/ch-2.raku13
2 files changed, 18 insertions, 10 deletions
diff --git a/challenge-086/feng-chang/raku/ch-1b.raku b/challenge-086/feng-chang/raku/ch-1b.raku
new file mode 100755
index 0000000000..7f2fa7676c
--- /dev/null
+++ b/challenge-086/feng-chang/raku/ch-1b.raku
@@ -0,0 +1,15 @@
+#!/bin/env raku
+
+sub USAGE() {
+print Q:c:to/END/;
+ Usage: {$*PROGRAM-NAME} <number A> <array N>
+ e.g.:
+ ./ch-1b.raku 7 10 8 12 15 5
+ ./ch-1b.raku 6 1 5 2 9 7
+ ./ch-1b.raku 15 10 30 20 50 40
+ END
+}
+
+sub MAIN(Int:D $A, *@N) {
+ put + [or] @N.combinations(2).map({ abs($_[0] - $_[1]) == abs($A)});
+}
diff --git a/challenge-086/feng-chang/raku/ch-2.raku b/challenge-086/feng-chang/raku/ch-2.raku
index 3abf043233..679037fae0 100755
--- a/challenge-086/feng-chang/raku/ch-2.raku
+++ b/challenge-086/feng-chang/raku/ch-2.raku
@@ -51,7 +51,6 @@ sub solve(@sdk is copy, UInt:D $pos) {
put @sdk[@rows-index[$_]] for ^9;
return;
}
-
return if contradict(@sdk);
if @is-uncertain[$pos] {
@@ -66,15 +65,9 @@ sub solve(@sdk is copy, UInt:D $pos) {
multi MAIN($data-file) {
my @puzzle = $data-file.IO.words;
- for ^81 -> $i {
- if @puzzle[$i] eq '_' {
- @puzzle[$i] = 0;
- @is-uncertain[$i] = True;
- } else {
- @puzzle[$i] .= Int;
- @is-uncertain[$i] = False;
- }
- }
+ @puzzle[$_] = 0 if @puzzle[$_] eq '_' for ^81;
+ @puzzle[$_] .= Int for ^81;
+ @is-uncertain[$_] = @puzzle[$_] == 0 for ^81;
solve(@puzzle, 0);
}