diff options
| -rw-r--r-- | challenge-206/zapwai/perl/ch-1.pl | 24 | ||||
| -rw-r--r-- | challenge-206/zapwai/perl/ch-2.pl | 32 |
2 files changed, 56 insertions, 0 deletions
diff --git a/challenge-206/zapwai/perl/ch-1.pl b/challenge-206/zapwai/perl/ch-1.pl new file mode 100644 index 0000000000..98aa650673 --- /dev/null +++ b/challenge-206/zapwai/perl/ch-1.pl @@ -0,0 +1,24 @@ +use v5.30.0; +my @time = ("00:00", "23:55", "20:00"); +#my @time= ("01:01", "00:50", "00:57"); +#my @time=("10:10", "09:30", "09:00", "09:55"); +print "Input: \@time = (".join(", ",@time).")\nOutput: "; +my @MIN; +foreach (@time) { + my ($hr, $mn) = split(":",$_); + push @MIN, $hr*60 + $mn; +} +my $min = 60*24; +my ($ind1,$ind2); +for my $i ( 0 .. $#MIN - 1) { + for my $j ( $i + 1 .. $#MIN) { + my $diff = abs $MIN[$i] - $MIN[$j]; + $diff = 60*24 - $diff if ($diff > 30*24); + if ($min > $diff) { + $min = $diff; + $ind1 = $i; + $ind2 = $j; + } + } +} +say "$min\n$min min is the difference between times $time[$ind1] and $time[$ind2]"; diff --git a/challenge-206/zapwai/perl/ch-2.pl b/challenge-206/zapwai/perl/ch-2.pl new file mode 100644 index 0000000000..e5724b4e85 --- /dev/null +++ b/challenge-206/zapwai/perl/ch-2.pl @@ -0,0 +1,32 @@ +use v5.30.0; +my @arr = (1,2,3,4); +sub min { + my ($a, $b) = @_; + ($a < $b) ? {return $a} : {return $b} +} +sub sum { + my ($a,$b,$c,$d) = @_; + min($a,$b) + min($c,$d) +} +my ($max,$out); +for my $i (0 .. $#arr - 3) { + for my $j ($i+1 .. $#arr - 2) { + for my $k ($j+1 .. $#arr - 1) { + for my $l ($k+1 .. $#arr) { + my ($I, $J, $K, $L) = ($arr[$i],$arr[$j],$arr[$k],$arr[$l]); + my $sum1 = sum($I,$J,$K,$L); + my $sum2 = sum($I,$K,$J,$L); + my $sum3 = sum($I,$L,$K,$J); + for ($sum1, $sum2, $sum3) { + $max = $_ if ($max < $_); + } + $out .= " ($arr[$i],$arr[$j]) & ($arr[$k],$arr[$l]) --> " . $sum1 ."\n"; + $out .= " ($arr[$i],$arr[$k]) & ($arr[$j],$arr[$l]) --> " . $sum2."\n"; + $out .= " ($arr[$i],$arr[$l]) & ($arr[$j],$arr[$k]) --> " . $sum3 ."\n"; + } + } + } +} +say "Input: \@array = (".join(",",@arr).")"; +say "Output: $max"; +print $out; |
