]> www.fi.muni.cz Git - aoc2020.git/blobdiff - 18.pl
Day 9 quick & dirty
[aoc2020.git] / 18.pl
diff --git a/18.pl b/18.pl
new file mode 100755 (executable)
index 0000000..3801b4e
--- /dev/null
+++ b/18.pl
@@ -0,0 +1,35 @@
+#!/usr/bin/perl -w
+
+use strict;
+
+my @prev;
+
+my $target = 375054920;
+
+my $sum = 0;
+while (my $num = <>) {
+       chomp $num;
+
+       $sum += $num;
+       push @prev, $num;
+       
+       print "Adding $num, sum=$sum\n";
+
+       while ($sum > $target) {
+               my $n1 = shift @prev;
+               $sum -= $n1;
+               print "Removing $n1, sum=$sum\n";
+       }
+
+       if ($sum == $target) {
+               print "found $sum = ", join('+', @prev), "\n";
+               my ($min, $max);
+               for my $n1 (@prev) {
+                       $min = $n1 if !defined $min || $min > $n1;
+                       $max = $n1 if !defined $max || $max < $n1;
+               }
+               print "$min+$max=", $min+$max, "\n";
+               last;
+       }
+}
+