]> www.fi.muni.cz Git - aoc2021.git/blobdiff - 09.pl
Day 5: off-by-one errors everywhere
[aoc2021.git] / 09.pl
diff --git a/09.pl b/09.pl
new file mode 100755 (executable)
index 0000000..11d9003
--- /dev/null
+++ b/09.pl
@@ -0,0 +1,28 @@
+#!/usr/bin/perl -w
+
+use v5.16;
+
+my $p;
+my $count;
+while (<>) {
+       my ($x1, $y1, $x2, $y2) = /(\d+),(\d+) -> (\d+),(\d+)/;
+       next if $x1 != $x2 && $y1 != $y2;
+       if ($x1 != $x2) {
+               if ($x1 > $x2) {
+                       ($x1, $x2) = ($x2, $x1);
+               }
+               for my $x ($x1 .. $x2) {
+                       $count++ if ++$p->{$x}->{$y1} == 2;
+               }
+       } else {
+               if ($y1 > $y2) {
+                       ($y1, $y2) = ($y2, $y1);
+               }
+               for my $y ($y1 .. $y2) {
+                       $count++ if ++$p->{$x1}->{$y} == 2;
+               }
+       }
+}
+
+say $count;
+