]> www.fi.muni.cz Git - aoc2021.git/blob - 27.pl
Day 25: pretty straightforward
[aoc2021.git] / 27.pl
1 #!/usr/bin/perl -w
2
3 use v5.16;
4
5 chomp (my $tmpl = <>);
6 scalar <>;
7
8 my %r;
9 while (<>) {
10         chomp;
11         my ($s1, $s2, $d) = /([A-Z])/g;
12         $r{"$s1$s2"} = "$s1$d$s2";
13 }
14
15 for (1 .. 10) {
16         my $i = 0;
17         while ($i < length $tmpl) {
18                 my $s = substr($tmpl, $i, 2);
19                 if ($r{$s}) {
20                         substr($tmpl, $i, 2) = $r{$s};
21                         $i+=2;
22                         next;
23                 }
24                 $i++;
25         }
26 }
27
28 my %count;
29 for ('A' .. 'Z') {
30         $count{$_} = () = $tmpl =~ /$_/g;
31 }
32
33 my @count = sort { $a <=> $b } grep { $_ > 0 } values %count;
34
35 say $count[-1] - $count[0];
36