]> www.fi.muni.cz Git - aoc2021.git/blob - 10.pl
Day 16: pretty straightforward parser
[aoc2021.git] / 10.pl
1 #!/usr/bin/perl -w
2
3 use v5.16;
4
5 my $p;
6 my $count;
7 while (<>) {
8         my ($x1, $y1, $x2, $y2) = /(\d+),(\d+) -> (\d+),(\d+)/;
9         # say "   $x1, $y1 -> $x2, $y2";
10         my $xi = $x2 > $x1 ? 1 : $x2 == $x1 ? 0 : -1;
11         my $yi = $y2 > $y1 ? 1 : $y2 == $y1 ? 0 : -1;
12         # say "   $xi, $yi";
13         
14         my ($x, $y) = ($x1, $y1);
15         do {
16                 # say "$x, $y";
17                 $count++ if ++$p->{$x}->{$y} == 2;
18                 $x += $xi; $y += $yi;
19         } while ($x != $x2+$xi || $y != $y2+$yi);
20 }
21
22 say $count;
23