-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathday02.pl
More file actions
31 lines (25 loc) · 745 Bytes
/
day02.pl
File metadata and controls
31 lines (25 loc) · 745 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
use strict;
use Term::ANSIColor;
use Win32::Console::ANSI;
use List::Util qw/max min/;
use Time::HiRes qw/time/;
my $time = time;
my $filename = "${0}_input";
open(my $fh, $filename);
my $sum = 0;
my $sum2 = 0;
while(<$fh>){
my @list = split "\t";
my $max = max @list;
my $min = min @list;
$sum += $max - $min;
for (my $i = 0; $i < scalar @list; $i++) {
for (my $j = 0; $j < $i; $j++) {
next if ($i==$j);
$sum2 += $list[$i] / $list[$j] if($list[$i] % $list[$j] == 0);
$sum2 += $list[$j] / $list[$i] if($list[$j] % $list[$i] == 0);
}
}
}
print "The checksum is ", colored( $sum, "black on_red" ), ".\n";
print "The sum of each result is " , colored($sum2,"black on_red"), ". ( ", sprintf ("%.3f",time - $time) ," s )\n";