]> www.fi.muni.cz Git - aoc2021.git/blob - 25.pl
Day 13: more off-by-one errors.
[aoc2021.git] / 25.pl
1 #!/usr/bin/perl -w
2
3 use v5.16;
4
5 my %dots;
6
7 while (<>) {
8         chomp;
9         my ($x, $y) = split /,/;
10         last if !defined $y;
11         $dots{$x}{$y}++;
12 }
13
14 my ($maxx, $maxy);
15 while (<>) {
16         chomp;
17         my ($axis, $val) = /fold along (.)=(\d+)/;
18
19         for my $x (keys %dots) {
20         for my $y (keys %{$dots{$x}}) {
21                 if ($axis eq 'x' && $x > $val) {
22                         $dots{2*$val - $x}{$y}++;
23                         delete $dots{$x}{$y};
24                 } elsif ($axis eq 'y' && $y > $val) {
25                         $dots{$x}{2*$val - $y}++;
26                         delete $dots{$x}{$y};
27                 }
28         } }
29         last;
30 }
31
32 my $sum;
33 for my $x (keys %dots) {
34         $sum += keys %{$dots{$x}};
35 }
36
37 say $sum;
38