diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-07-14 23:06:29 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-14 23:06:29 +0100 |
| commit | 88307e01dac55707d5cb0371076ffa002fcb5210 (patch) | |
| tree | 9f884fc547bbd0b65600c8e497bb805c87fc3c3d | |
| parent | dbf2fff901c6c10835c11b40ccdd76ad77a567e8 (diff) | |
| parent | a40d6c311344ae6088fdedad8846cfe2a9533ece (diff) | |
| download | perlweeklychallenge-club-88307e01dac55707d5cb0371076ffa002fcb5210.tar.gz perlweeklychallenge-club-88307e01dac55707d5cb0371076ffa002fcb5210.tar.bz2 perlweeklychallenge-club-88307e01dac55707d5cb0371076ffa002fcb5210.zip | |
Merge pull request #4522 from luc65r/121
Challenge 121
| -rw-r--r-- | challenge-121/luc65r/input.txt | 4 | ||||
| -rwxr-xr-x | challenge-121/luc65r/raku/ch-1.raku | 5 | ||||
| -rwxr-xr-x | challenge-121/luc65r/raku/ch-2.raku | 28 |
3 files changed, 37 insertions, 0 deletions
diff --git a/challenge-121/luc65r/input.txt b/challenge-121/luc65r/input.txt new file mode 100644 index 0000000000..a389324b02 --- /dev/null +++ b/challenge-121/luc65r/input.txt @@ -0,0 +1,4 @@ +0 5 2 7 +5 0 5 3 +3 1 0 6 +4 5 4 0 diff --git a/challenge-121/luc65r/raku/ch-1.raku b/challenge-121/luc65r/raku/ch-1.raku new file mode 100755 index 0000000000..c85f9f2320 --- /dev/null +++ b/challenge-121/luc65r/raku/ch-1.raku @@ -0,0 +1,5 @@ +#!/usr/bin/env raku + +unit sub MAIN(UInt $m, UInt $n is copy where * > 0); + +say $m +^ 1 +< ($n - 1); diff --git a/challenge-121/luc65r/raku/ch-2.raku b/challenge-121/luc65r/raku/ch-2.raku new file mode 100755 index 0000000000..5279e84d3b --- /dev/null +++ b/challenge-121/luc65r/raku/ch-2.raku @@ -0,0 +1,28 @@ +#!/usr/bin/env raku + +sub len(@mat, @tour --> Numeric) { + @tour.rotor(2 => -1).map({ @mat[.tail;.head] }).sum +} + +proto MAIN(|) { + my @mat := {*}; + my $n = @mat.shape[0]; + say "matrix:\n", @mat, "\n"; + my @m = |min :by({ len @mat, $_ }), map { |$_, $_[0] }, permutations ^$n; + say "tour: $@m"; + say "length: {len @mat, @m}"; +} + +multi MAIN(UInt:D $n --> Array) { + my Numeric @mat[$n;$n]; + for @mat <-> $v { + $v = (1 ..^ 10).rand.Int; + } + @mat[$_;$_] = 0 for 0 ..^ $n; + return @mat; +} + +multi MAIN(Str:D $f = "-" --> Array) { + my @l = $f.IO.open.lines; + Array[Numeric].new: :shape(+@l, +@l), map { / [ (\d+) \s* ]+ /; |+« $/.list }, @l +} |
