1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
--- Day 14: Extended Polymerization ---
The incredible pressures at this depth are starting to put a strain on your submarine. The submarine
has polymerization equipment that would produce suitable materials to reinforce the submarine, and
the nearby volcanically-active caves should even have the necessary input elements in sufficient
quantities.
The submarine manual contains instructions for finding the optimal polymer formula; specifically, it
offers a [1m[97mpolymer template[0m and a list of [1m[97mpair insertion[0m rules (your puzzle input). You just need to
work out what polymer would result after repeating the pair insertion process a few times.
For example:
NNCB
CH -> B
HH -> N
CB -> H
NH -> C
HB -> C
HC -> B
HN -> C
NN -> C
BH -> H
NC -> B
NB -> B
BN -> B
BB -> N
BC -> B
CC -> N
CN -> C
The first line is the [1m[97mpolymer template[0m - this is the starting point of the process.
The following section defines the [1m[97mpair insertion[0m rules. A rule like AB -> C means that when elements
A and B are immediately adjacent, element C should be inserted between them. These insertions all
happen simultaneously.
So, starting with the polymer template NNCB, the first step simultaneously considers all three
pairs:
- The first pair (NN) matches the rule NN -> C, so element [1m[97mC[0m is inserted between the first N and
the second N.
- The second pair (NC) matches the rule NC -> B, so element [1m[97mB[0m is inserted between the N and the C.
- The third pair (CB) matches the rule CB -> H, so element [1m[97mH[0m is inserted between the C and the B.
Note that these pairs overlap: the second element of one pair is the first element of the next pair.
Also, because all pairs are considered simultaneously, inserted elements are not considered to be
part of a pair until the next step.
After the first step of this process, the polymer becomes
N[1m[97mC[0mN[1m[97mB[0mC[1m[97mH[0mB.
Here are the results of a few steps using the above rules:
Template: NNCB
After step 1: NCNBCHB
After step 2: NBCCNBBBCBHCB
After step 3: NBBBCNCCNBBNBNBBCHBHHBCHB
After step 4: NBBNBNBBCCNBCNCCNBBNBBNBBBNBBNBBCBHCBHHNHCBBCBHCB
This polymer grows quickly. After step 5, it has length 97; After step 10, it has length 3073. After
step 10, B occurs 1749 times, C occurs 298 times, H occurs 161 times, and N occurs 865 times; taking
the quantity of the most common element (B, 1749) and subtracting the quantity of the least common
element (H, 161) produces 1749 - 161 = [1m[97m1588[0m.
Apply 10 steps of pair insertion to the polymer template and find the most and least common elements
in the result. [1m[97mWhat do you get if you take the quantity of the most common element and subtract the
quantity of the least common element?[0m
|