diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-02-16 09:34:07 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-16 09:34:07 +0000 |
| commit | dafba55fd28944345f736ab47e5ff60a0570b449 (patch) | |
| tree | cd5d8b50de2f395e5fc5212ee3faf3964cfcfad8 | |
| parent | 40464b6164181aff84d4124e7cbcf1687d0a0fa2 (diff) | |
| parent | 712c3c3b0d3cc9c06e24047637dc0c97dbee57d7 (diff) | |
| download | perlweeklychallenge-club-dafba55fd28944345f736ab47e5ff60a0570b449.tar.gz perlweeklychallenge-club-dafba55fd28944345f736ab47e5ff60a0570b449.tar.bz2 perlweeklychallenge-club-dafba55fd28944345f736ab47e5ff60a0570b449.zip | |
Merge pull request #5654 from andemark/branch-for-challenge-152
initial 152
| -rw-r--r-- | challenge-152/mark-anderson/raku/ch-1.raku | 11 | ||||
| -rw-r--r-- | challenge-152/mark-anderson/raku/ch-2.raku | 25 |
2 files changed, 36 insertions, 0 deletions
diff --git a/challenge-152/mark-anderson/raku/ch-1.raku b/challenge-152/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..bfe8e1272e --- /dev/null +++ b/challenge-152/mark-anderson/raku/ch-1.raku @@ -0,0 +1,11 @@ +#!/usr/bin/env raku + +use Test; + +is triangle-sum([ [1], [5,3], [2,3,4], [7,1,0,2], [6,4,5,2,8] ]), 8; +is triangle-sum([ [5], [2,3], [4,1,5], [0,1,2,3], [7,2,4,1,9] ]), 9; + +sub triangle-sum(@a) +{ + [+] @a>>.min; +} diff --git a/challenge-152/mark-anderson/raku/ch-2.raku b/challenge-152/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..c325a98db0 --- /dev/null +++ b/challenge-152/mark-anderson/raku/ch-2.raku @@ -0,0 +1,25 @@ +#!/usr/bin/env raku + +use Test; + +is rectangle-area((-1,0), (2,2), (0,-1), (4,4)), 22; +is rectangle-area((-3,-1), (1,3), (-1,-3), (2,2)), 25; +is rectangle-area((1,1), (2,2), (3,3), (4,4)), 2; +is rectangle-area((-1,-1), (-2,-2), (1,1), (2,2)), 2; +is rectangle-area((1,1), (2,2), (-1,-1), (-2,-2)), 2; +is rectangle-area((3,3), (4,4), (1,1), (2,2)), 2; +is rectangle-area((4,2), (7,5), (2,3), (5,7)), 19; + +sub rectangle-area(+@p) +{ + my $p = @p.map(|*); + + my $int = flat ($p[0,4], $p[1,5])>>.max, ($p[2,6], $p[3,7])>>.min; + + my $int-x = [-] $int[2,0]; + my $int-y = [-] $int[3,1]; + + my $int-area = $int-x|$int-y < 0 ?? 0 !! $int-x * $int-y; + + ([-] $p[0,2]) * ([-] $p[1,3]) + ([-] $p[4,6]) * ([-] $p[5,7]) - $int-area; +} |
