aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-056/mark-anderson/perl/ch-1.pl19
-rw-r--r--challenge-056/mark-anderson/raku/ch-1.p613
2 files changed, 32 insertions, 0 deletions
diff --git a/challenge-056/mark-anderson/perl/ch-1.pl b/challenge-056/mark-anderson/perl/ch-1.pl
new file mode 100644
index 0000000000..046ca91960
--- /dev/null
+++ b/challenge-056/mark-anderson/perl/ch-1.pl
@@ -0,0 +1,19 @@
+#!/usr/bin/env perl
+use Modern::Perl;
+use Algorithm::Combinatorics 'combinations';
+use List::Util 'all';
+
+# Usage: perl ch-1.pl @N $k
+# Example: perl ch-1.pl 2 7 9 2
+# Output: 2,1
+
+die "Usage: perl ch-1.pl \@N \$k" unless all { /\d/ } @ARGV;
+
+my $k = pop @ARGV;
+
+my $combo = combinations([keys @ARGV], 2);
+
+while (my $indices = $combo->next) {
+ my ($i, $j) = $indices->@*;
+ say "$j,$i" if $ARGV[$j] - $ARGV[$i] == $k;
+}
diff --git a/challenge-056/mark-anderson/raku/ch-1.p6 b/challenge-056/mark-anderson/raku/ch-1.p6
new file mode 100644
index 0000000000..bb05780ff9
--- /dev/null
+++ b/challenge-056/mark-anderson/raku/ch-1.p6
@@ -0,0 +1,13 @@
+#!/usr/bin/env raku
+
+# Usage: raku ch-1.p6 @N $k
+# Example: raku ch-1.p6 2 7 9 2
+# Output: 2,1
+
+sub MAIN(*@ARGV where @ARGV.all ~~ /\d/) {
+ my $k = @ARGV.pop;
+
+ for @ARGV.keys.combinations: 2 -> ($i, $j) {
+ say "$j,$i" if @ARGV[$j] - @ARGV[$i] == $k;
+ }
+}