diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-10-01 09:44:55 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-01 09:44:55 +0100 |
| commit | e6ac460e0e6a3ca241e02cd9eab4fbaa7ca0466b (patch) | |
| tree | dfbf2f46426abdb0ae45a90a5bff39276a7b471a /challenge-339 | |
| parent | 388f2fde216807f8a8f658d52edb1d6a0027f9b7 (diff) | |
| parent | b4180cc53495ff49852ebdda54d9734c90a1cca7 (diff) | |
| download | perlweeklychallenge-club-e6ac460e0e6a3ca241e02cd9eab4fbaa7ca0466b.tar.gz perlweeklychallenge-club-e6ac460e0e6a3ca241e02cd9eab4fbaa7ca0466b.tar.bz2 perlweeklychallenge-club-e6ac460e0e6a3ca241e02cd9eab4fbaa7ca0466b.zip | |
Merge pull request #12769 from jaldhar/challenge-339
Challenge 339 by Jaldhar H. Vyas.
Diffstat (limited to 'challenge-339')
| -rw-r--r-- | challenge-339/jaldhar-h-vyas/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-339/jaldhar-h-vyas/perl/ch-1.pl | 64 | ||||
| -rwxr-xr-x | challenge-339/jaldhar-h-vyas/perl/ch-2.pl | 22 | ||||
| -rwxr-xr-x | challenge-339/jaldhar-h-vyas/raku/ch-1.sh | 3 | ||||
| -rwxr-xr-x | challenge-339/jaldhar-h-vyas/raku/ch-2.sh | 3 |
5 files changed, 93 insertions, 0 deletions
diff --git a/challenge-339/jaldhar-h-vyas/blog.txt b/challenge-339/jaldhar-h-vyas/blog.txt new file mode 100644 index 0000000000..156e5d8897 --- /dev/null +++ b/challenge-339/jaldhar-h-vyas/blog.txt @@ -0,0 +1 @@ +https://www.braincells.com/perl/2025/10/perl_weekly_challenge_week_339.html diff --git a/challenge-339/jaldhar-h-vyas/perl/ch-1.pl b/challenge-339/jaldhar-h-vyas/perl/ch-1.pl new file mode 100755 index 0000000000..8fc9b5a748 --- /dev/null +++ b/challenge-339/jaldhar-h-vyas/perl/ch-1.pl @@ -0,0 +1,64 @@ +#!/usr/bin/perl +use 5.038; +use warnings; + +sub combinations($listref, $length) { + my @list = @{$listref}; + + if ($length <= 1) { + return map { [$_] } @list; + } + + my @combos; + + for (my $i = 0; $i + $length <= scalar @list; $i++) { + my $val = $list[$i]; + my @rest = @list[$i + 1 .. $#list]; + for my $c (combinations(\@rest, $length - 1)) { + push @combos, [$val, @{$c}] ; + } + } + + return @combos; +} + +sub max(@arr) { + my $highest = '-inf'; + for my $i (@arr) { + if ($i > $highest) { + $highest = $i; + } + } + + return $highest; +} + +sub permute(@arr) { + my @permutations; + + my @idx = keys @arr; + while ( push @permutations, [@arr[@idx]] ) { + my $p = scalar @idx - 1; + while ($idx[$p-1] >= $idx[$p]) { + --$p; + } + my $q = $p; + if (!$q) { + last; + } + push @idx, reverse splice @idx, $p; + while ($idx[$p-1] > $idx[$q]) { + ++$q; + } + @idx[$p-1,$q]=@idx[$q,$p-1]; + } + + return @permutations; +} + +sub productDifference($arr) { + return $arr->[0] * $arr->[1] - $arr->[2] * $arr->[3]; +} + +say max(map { max(map { productDifference($_) } permute @{$_}) } combinations(\@ARGV, 4)); + diff --git a/challenge-339/jaldhar-h-vyas/perl/ch-2.pl b/challenge-339/jaldhar-h-vyas/perl/ch-2.pl new file mode 100755 index 0000000000..ad51af3d42 --- /dev/null +++ b/challenge-339/jaldhar-h-vyas/perl/ch-2.pl @@ -0,0 +1,22 @@ +#!/usr/bin/perl +use 5.038; +use warnings; + +sub max(@arr) { + my $highest = '-inf'; + for my $i (@arr) { + if ($i > $highest) { + $highest = $i; + } + } + + return $highest; +} + +my @changes = (0); + +for (@ARGV) { + push @changes, $changes[-1] + $_; +} + +say max(@changes);
\ No newline at end of file diff --git a/challenge-339/jaldhar-h-vyas/raku/ch-1.sh b/challenge-339/jaldhar-h-vyas/raku/ch-1.sh new file mode 100755 index 0000000000..03aab43fad --- /dev/null +++ b/challenge-339/jaldhar-h-vyas/raku/ch-1.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +raku -e '@*ARGS.combinations(4).map({.permutations.map({$_[0]*$_[1]-$_[2]*$_[3]}).max}).max.say' "$@"
\ No newline at end of file diff --git a/challenge-339/jaldhar-h-vyas/raku/ch-2.sh b/challenge-339/jaldhar-h-vyas/raku/ch-2.sh new file mode 100755 index 0000000000..bfcbd50af7 --- /dev/null +++ b/challenge-339/jaldhar-h-vyas/raku/ch-2.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +raku -e 'my @a=(0);for @*ARGS {@a.push(@a[*-1]+$_)};@a.max.say' "$@"
\ No newline at end of file |
