]> www.fi.muni.cz Git - aoc2021.git/blob - 26.pl
Day 25: pretty straightforward
[aoc2021.git] / 26.pl
1 #!/usr/bin/perl -w
2
3 use v5.16;
4
5 my %dots;
6 $; = ',';
7 while (<>) {
8         chomp;
9         last if !length;
10         $dots{$_}++;
11 }
12
13 my %max;
14 while (<>) {
15         chomp;
16         my ($axis, $val) = /fold along (.)=(\d+)/;
17         $max{$axis} = $val;
18
19         for (keys %dots) {
20                 my ($x, $y) = split /,/;
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 }
30
31 for my $y (0 .. $max{y}) {
32         for my $x (0 .. $max{x}) {
33                 print $dots{$x,$y} ? '#' : ' ';
34         }
35         print "\n";
36 }
37