]> www.fi.muni.cz Git - aoc.git/blob - 2015/37.pl
Day 25: examining the input
[aoc.git] / 2015 / 37.pl
1 #!/usr/bin/perl -w
2
3 use v5.16;
4 use strict;
5
6 my @rules;
7 while (<>) {
8         chomp;
9         last if /^$/;
10         my ($src, $dst) = /(\w+) => (\w+)/;
11         push @rules, [$src, $dst];
12 }
13
14 chomp (my $mol = <>);
15
16 my %seen;
17
18 for my $r (@rules) {
19         my ($src, $dst) = @$r;
20         my $m1 = $mol;
21         say "$src => $dst";
22         while ($m1 =~ /$src/g) {
23                 my $m2 = $m1;
24                 substr($m2, pos($m1)-length($src), length($src)) = $dst;
25                 $seen{$m2}++;
26                 say $m2;
27         }
28 }
29
30 say scalar keys %seen;