]> www.fi.muni.cz Git - aoc.git/blobdiff - 2015/37.pl
Year 2015
[aoc.git] / 2015 / 37.pl
diff --git a/2015/37.pl b/2015/37.pl
new file mode 100755 (executable)
index 0000000..74a2746
--- /dev/null
@@ -0,0 +1,30 @@
+#!/usr/bin/perl -w
+
+use v5.16;
+use strict;
+
+my @rules;
+while (<>) {
+       chomp;
+       last if /^$/;
+       my ($src, $dst) = /(\w+) => (\w+)/;
+       push @rules, [$src, $dst];
+}
+
+chomp (my $mol = <>);
+
+my %seen;
+
+for my $r (@rules) {
+       my ($src, $dst) = @$r;
+       my $m1 = $mol;
+       say "$src => $dst";
+       while ($m1 =~ /$src/g) {
+               my $m2 = $m1;
+               substr($m2, pos($m1)-length($src), length($src)) = $dst;
+               $seen{$m2}++;
+               say $m2;
+       }
+}
+
+say scalar keys %seen;