diff options
| author | 冯昶 <fengchang@novel-supertv.com> | 2020-11-17 14:27:55 +0800 |
|---|---|---|
| committer | 冯昶 <fengchang@novel-supertv.com> | 2020-11-17 14:27:55 +0800 |
| commit | 1a04900a0b39cba6c3adb9525543233d8ff32a54 (patch) | |
| tree | bd0ea35ddcb676bde7cf501fb5eb25178842f99b /challenge-086/feng-chang | |
| parent | 1742d1884a3e2957a2cc03fb2db5339a86bd0e63 (diff) | |
| download | perlweeklychallenge-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-x | challenge-086/feng-chang/raku/ch-1b.raku | 15 | ||||
| -rwxr-xr-x | challenge-086/feng-chang/raku/ch-2.raku | 13 |
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); } |
