diff options
| author | Mariano Spadaccini <spadacciniweb@gmail.com> | 2023-01-09 12:44:56 +0100 |
|---|---|---|
| committer | Mariano Spadaccini <spadacciniweb@gmail.com> | 2023-01-09 12:44:56 +0100 |
| commit | eab50459cf1a24866212bea895655b2d1c63f9cb (patch) | |
| tree | 5aba0e0ad60f8b3b441202867c8b54621f5d115a /challenge-199 | |
| parent | b8a1cd65abd85f6cf9df5b9dc5bc34677763b531 (diff) | |
| download | perlweeklychallenge-club-eab50459cf1a24866212bea895655b2d1c63f9cb.tar.gz perlweeklychallenge-club-eab50459cf1a24866212bea895655b2d1c63f9cb.tar.bz2 perlweeklychallenge-club-eab50459cf1a24866212bea895655b2d1c63f9cb.zip | |
challenge 199 by spadacciniweb
Diffstat (limited to 'challenge-199')
| -rw-r--r-- | challenge-199/spadacciniweb/README | 1 | ||||
| -rw-r--r-- | challenge-199/spadacciniweb/perl/ch-1.pl | 14 | ||||
| -rw-r--r-- | challenge-199/spadacciniweb/perl/ch-2.pl | 35 |
3 files changed, 50 insertions, 0 deletions
diff --git a/challenge-199/spadacciniweb/README b/challenge-199/spadacciniweb/README new file mode 100644 index 0000000000..8d335de4c1 --- /dev/null +++ b/challenge-199/spadacciniweb/README @@ -0,0 +1 @@ +Solution by Mariano Spadaccini. diff --git a/challenge-199/spadacciniweb/perl/ch-1.pl b/challenge-199/spadacciniweb/perl/ch-1.pl new file mode 100644 index 0000000000..e6840eea49 --- /dev/null +++ b/challenge-199/spadacciniweb/perl/ch-1.pl @@ -0,0 +1,14 @@ +#!/usr/bin/env perl +use strict; +use warnings; + +my @list = @ARGV; +die 'list elements < 2' + if scalar @list < 2; + +my $output = 0; +foreach my $i (0..$#list-1) { + $output += scalar map { $list[$i] == $list[$_] ? 1 : () } + ($i+1..$#list); +} +printf 'Output: %s', $output; diff --git a/challenge-199/spadacciniweb/perl/ch-2.pl b/challenge-199/spadacciniweb/perl/ch-2.pl new file mode 100644 index 0000000000..cd5cf1fc00 --- /dev/null +++ b/challenge-199/spadacciniweb/perl/ch-2.pl @@ -0,0 +1,35 @@ +#!/usr/bin/env perl +use strict; +use warnings; + + +print "List elements: "; +my @list = split /\s+/, <STDIN>; +print "Three integers: "; +my @integers = split /\s+/, <STDIN>; + +die 'input not valid' + if scalar @list < 3 + or + scalar @integers < 3 + or + (scalar map { $_ =~ /^[+\-]?\d+$/ ? 1 : () } @list) != (scalar @list) + or + scalar map { $_ =~ /^[+\-]?\d+$/ } @integers != 3 +; + +my ($x, $y, $z) = @integers; +my $output = 0; +foreach my $i (0..$#list-2) { + foreach my $j ($i+1..$#list-1) { + $output += scalar map { 1 } + grep { + abs($list[$i] - $list[$j]) <= $x + and + abs($list[$j] - $list[$_]) <= $y + and + abs($list[$i] - $list[$_]) <= $z + } ($j+1..$#list); + } +} +printf 'Output: %s', $output; |
