]> www.fi.muni.cz Git - aoc2020.git/blob - 18.pl
Task 9 Perl Golf-style
[aoc2020.git] / 18.pl
1 #!/usr/bin/perl -w
2
3 use strict;
4
5 my @prev;
6
7 my $target = 375054920;
8
9 my $sum = 0;
10 while (my $num = <>) {
11         chomp $num;
12
13         $sum += $num;
14         push @prev, $num;
15         
16         print "Adding $num, sum=$sum\n";
17
18         while ($sum > $target) {
19                 my $n1 = shift @prev;
20                 $sum -= $n1;
21                 print "Removing $n1, sum=$sum\n";
22         }
23
24         if ($sum == $target) {
25                 print "found $sum = ", join('+', @prev), "\n";
26                 my ($min, $max);
27                 for my $n1 (@prev) {
28                         $min = $n1 if !defined $min || $min > $n1;
29                         $max = $n1 if !defined $max || $max < $n1;
30                 }
31                 print "$min+$max=", $min+$max, "\n";
32                 last;
33         }
34 }
35