Optimised day 19
[advent-of-code-22.git] / problems / day16.html
1 <!DOCTYPE html>
2 <html lang="en-us">
3 <head>
4 <meta charset="utf-8"/>
5 <title>Day 16 - Advent of Code 2022</title>
6 <!--[if lt IE 9]><script src="/static/html5.js"></script><![endif]-->
7 <link href='//fonts.googleapis.com/css?family=Source+Code+Pro:300&subset=latin,latin-ext' rel='stylesheet' type='text/css'/>
8 <link rel="stylesheet" type="text/css" href="/static/style.css?30"/>
9 <link rel="stylesheet alternate" type="text/css" href="/static/highcontrast.css?0" title="High Contrast"/>
10 <link rel="shortcut icon" href="/favicon.png"/>
11 <script>window.addEventListener('click', function(e,s,r){if(e.target.nodeName==='CODE'&&e.detail===3){s=window.getSelection();s.removeAllRanges();r=document.createRange();r.selectNodeContents(e.target);s.addRange(r);}});</script>
12 </head><!--
13
14
15
16
17 Oh, hello! Funny seeing you here.
18
19 I appreciate your enthusiasm, but you aren't going to find much down here.
20 There certainly aren't clues to any of the puzzles. The best surprises don't
21 even appear in the source until you unlock them for real.
22
23 Please be careful with automated requests; I'm not a massive company, and I can
24 only take so much traffic. Please be considerate so that everyone gets to play.
25
26 If you're curious about how Advent of Code works, it's running on some custom
27 Perl code. Other than a few integrations (auth, analytics, social media), I
28 built the whole thing myself, including the design, animations, prose, and all
29 of the puzzles.
30
31 The puzzles are most of the work; preparing a new calendar and a new set of
32 puzzles each year takes all of my free time for 4-5 months. A lot of effort
33 went into building this thing - I hope you're enjoying playing it as much as I
34 enjoyed making it for you!
35
36 If you'd like to hang out, I'm @ericwastl on Twitter.
37
38 - Eric Wastl
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89 -->
90 <body>
91 <header><div><h1 class="title-global"><a href="/">Advent of Code</a></h1><nav><ul><li><a href="/2022/about">[About]</a></li><li><a href="/2022/events">[Events]</a></li><li><a href="https://teespring.com/stores/advent-of-code" target="_blank">[Shop]</a></li><li><a href="/2022/settings">[Settings]</a></li><li><a href="/2022/auth/logout">[Log Out]</a></li></ul></nav><div class="user">Neil Smith <a href="/2022/support" class="supporter-badge" title="Advent of Code Supporter">(AoC++)</a> <span class="star-count">32*</span></div></div><div><h1 class="title-event">&nbsp;<span class="title-event-wrap">{&apos;year&apos;:</span><a href="/2022">2022</a><span class="title-event-wrap">}</span></h1><nav><ul><li><a href="/2022">[Calendar]</a></li><li><a href="/2022/support">[AoC++]</a></li><li><a href="/2022/sponsors">[Sponsors]</a></li><li><a href="/2022/leaderboard">[Leaderboard]</a></li><li><a href="/2022/stats">[Stats]</a></li></ul></nav></div></header>
92
93 <div id="sidebar">
94 <div id="sponsor"><div class="quiet">Our <a href="/2022/sponsors">sponsors</a> help make Advent of Code possible:</div><div class="sponsor"><a href="https://careers.bankofamerica.com/" target="_blank" onclick="if(ga)ga('send','event','sponsor','sidebar',this.href);" rel="noopener">Bank of America</a> - We use technology, models and data to make financial lives better for our clients and communities.</div></div>
95 </div><!--/sidebar-->
96
97 <main>
98 <article class="day-desc"><h2>--- Day 16: Proboscidea Volcanium ---</h2><p>The sensors have led you to the origin of the distress signal: yet another handheld device, just like the one the Elves gave you. However, you don't see any Elves around; instead, the device is surrounded by elephants! They must have gotten lost in these tunnels, and one of the elephants apparently figured out how to turn on the distress signal.</p>
99 <p>The ground rumbles again, much stronger this time. What kind of cave is this, exactly? You scan the cave with your handheld device; it reports mostly igneous rock, some ash, pockets of pressurized gas, magma... this isn't just a cave, it's a volcano!</p>
100 <p>You need to get the elephants out of here, quickly. Your device estimates that you have <em>30 minutes</em> before the volcano erupts, so you don't have time to go back out the way you came in.</p>
101 <p>You scan the cave for other options and discover a network of pipes and pressure-release <em>valves</em>. You aren't sure how such a system got into a volcano, but you don't have time to complain; your device produces a report (your puzzle input) of each valve's <em>flow rate</em> if it were opened (in pressure per minute) and the tunnels you could use to move between the valves.</p>
102 <p>There's even a valve in the room you and the elephants are currently standing in labeled <code>AA</code>. You estimate it will take you one minute to open a single valve and one minute to follow any tunnel from one valve to another. What is the most pressure you could release?</p>
103 <p>For example, suppose you had the following scan output:</p>
104 <pre><code>Valve AA has flow rate=0; tunnels lead to valves DD, II, BB
105 Valve BB has flow rate=13; tunnels lead to valves CC, AA
106 Valve CC has flow rate=2; tunnels lead to valves DD, BB
107 Valve DD has flow rate=20; tunnels lead to valves CC, AA, EE
108 Valve EE has flow rate=3; tunnels lead to valves FF, DD
109 Valve FF has flow rate=0; tunnels lead to valves EE, GG
110 Valve GG has flow rate=0; tunnels lead to valves FF, HH
111 Valve HH has flow rate=22; tunnel leads to valve GG
112 Valve II has flow rate=0; tunnels lead to valves AA, JJ
113 Valve JJ has flow rate=21; tunnel leads to valve II
114 </code></pre>
115 <p>All of the valves begin <em>closed</em>. You start at valve <code>AA</code>, but it must be damaged or <span title="Wait, sir! The valve, sir! it appears to be... jammed!">jammed</span> or something: its flow rate is <code>0</code>, so there's no point in opening it. However, you could spend one minute moving to valve <code>BB</code> and another minute opening it; doing so would release pressure during the remaining <em>28 minutes</em> at a flow rate of <code>13</code>, a total eventual pressure release of <code>28 * 13 = <em>364</em></code>. Then, you could spend your third minute moving to valve <code>CC</code> and your fourth minute opening it, providing an additional <em>26 minutes</em> of eventual pressure release at a flow rate of <code>2</code>, or <code><em>52</em></code> total pressure released by valve <code>CC</code>.</p>
116 <p>Making your way through the tunnels like this, you could probably open many or all of the valves by the time 30 minutes have elapsed. However, you need to release as much pressure as possible, so you'll need to be methodical. Instead, consider this approach:</p>
117 <pre><code>== Minute 1 ==
118 No valves are open.
119 You move to valve DD.
120
121 == Minute 2 ==
122 No valves are open.
123 You open valve DD.
124
125 == Minute 3 ==
126 Valve DD is open, releasing <em>20</em> pressure.
127 You move to valve CC.
128
129 == Minute 4 ==
130 Valve DD is open, releasing <em>20</em> pressure.
131 You move to valve BB.
132
133 == Minute 5 ==
134 Valve DD is open, releasing <em>20</em> pressure.
135 You open valve BB.
136
137 == Minute 6 ==
138 Valves BB and DD are open, releasing <em>33</em> pressure.
139 You move to valve AA.
140
141 == Minute 7 ==
142 Valves BB and DD are open, releasing <em>33</em> pressure.
143 You move to valve II.
144
145 == Minute 8 ==
146 Valves BB and DD are open, releasing <em>33</em> pressure.
147 You move to valve JJ.
148
149 == Minute 9 ==
150 Valves BB and DD are open, releasing <em>33</em> pressure.
151 You open valve JJ.
152
153 == Minute 10 ==
154 Valves BB, DD, and JJ are open, releasing <em>54</em> pressure.
155 You move to valve II.
156
157 == Minute 11 ==
158 Valves BB, DD, and JJ are open, releasing <em>54</em> pressure.
159 You move to valve AA.
160
161 == Minute 12 ==
162 Valves BB, DD, and JJ are open, releasing <em>54</em> pressure.
163 You move to valve DD.
164
165 == Minute 13 ==
166 Valves BB, DD, and JJ are open, releasing <em>54</em> pressure.
167 You move to valve EE.
168
169 == Minute 14 ==
170 Valves BB, DD, and JJ are open, releasing <em>54</em> pressure.
171 You move to valve FF.
172
173 == Minute 15 ==
174 Valves BB, DD, and JJ are open, releasing <em>54</em> pressure.
175 You move to valve GG.
176
177 == Minute 16 ==
178 Valves BB, DD, and JJ are open, releasing <em>54</em> pressure.
179 You move to valve HH.
180
181 == Minute 17 ==
182 Valves BB, DD, and JJ are open, releasing <em>54</em> pressure.
183 You open valve HH.
184
185 == Minute 18 ==
186 Valves BB, DD, HH, and JJ are open, releasing <em>76</em> pressure.
187 You move to valve GG.
188
189 == Minute 19 ==
190 Valves BB, DD, HH, and JJ are open, releasing <em>76</em> pressure.
191 You move to valve FF.
192
193 == Minute 20 ==
194 Valves BB, DD, HH, and JJ are open, releasing <em>76</em> pressure.
195 You move to valve EE.
196
197 == Minute 21 ==
198 Valves BB, DD, HH, and JJ are open, releasing <em>76</em> pressure.
199 You open valve EE.
200
201 == Minute 22 ==
202 Valves BB, DD, EE, HH, and JJ are open, releasing <em>79</em> pressure.
203 You move to valve DD.
204
205 == Minute 23 ==
206 Valves BB, DD, EE, HH, and JJ are open, releasing <em>79</em> pressure.
207 You move to valve CC.
208
209 == Minute 24 ==
210 Valves BB, DD, EE, HH, and JJ are open, releasing <em>79</em> pressure.
211 You open valve CC.
212
213 == Minute 25 ==
214 Valves BB, CC, DD, EE, HH, and JJ are open, releasing <em>81</em> pressure.
215
216 == Minute 26 ==
217 Valves BB, CC, DD, EE, HH, and JJ are open, releasing <em>81</em> pressure.
218
219 == Minute 27 ==
220 Valves BB, CC, DD, EE, HH, and JJ are open, releasing <em>81</em> pressure.
221
222 == Minute 28 ==
223 Valves BB, CC, DD, EE, HH, and JJ are open, releasing <em>81</em> pressure.
224
225 == Minute 29 ==
226 Valves BB, CC, DD, EE, HH, and JJ are open, releasing <em>81</em> pressure.
227
228 == Minute 30 ==
229 Valves BB, CC, DD, EE, HH, and JJ are open, releasing <em>81</em> pressure.
230 </code></pre>
231 <p>This approach lets you release the most pressure possible in 30 minutes with this valve layout, <code><em>1651</em></code>.</p>
232 <p>Work out the steps to release the most pressure in 30 minutes. <em>What is the most pressure you can release?</em></p>
233 </article>
234 <p>Your puzzle answer was <code>1792</code>.</p><article class="day-desc"><h2 id="part2">--- Part Two ---</h2><p>You're worried that even with an optimal approach, the pressure released won't be enough. What if you got one of the elephants to help you?</p>
235 <p>It would take you 4 minutes to teach an elephant how to open the right valves in the right order, leaving you with only <em>26 minutes</em> to actually execute your plan. Would having two of you working together be better, even if it means having less time? (Assume that you teach the elephant before opening any valves yourself, giving you both the same full 26 minutes.)</p>
236 <p>In the example above, you could teach the elephant to help you as follows:</p>
237 <pre><code>== Minute 1 ==
238 No valves are open.
239 You move to valve II.
240 The elephant moves to valve DD.
241
242 == Minute 2 ==
243 No valves are open.
244 You move to valve JJ.
245 The elephant opens valve DD.
246
247 == Minute 3 ==
248 Valve DD is open, releasing <em>20</em> pressure.
249 You open valve JJ.
250 The elephant moves to valve EE.
251
252 == Minute 4 ==
253 Valves DD and JJ are open, releasing <em>41</em> pressure.
254 You move to valve II.
255 The elephant moves to valve FF.
256
257 == Minute 5 ==
258 Valves DD and JJ are open, releasing <em>41</em> pressure.
259 You move to valve AA.
260 The elephant moves to valve GG.
261
262 == Minute 6 ==
263 Valves DD and JJ are open, releasing <em>41</em> pressure.
264 You move to valve BB.
265 The elephant moves to valve HH.
266
267 == Minute 7 ==
268 Valves DD and JJ are open, releasing <em>41</em> pressure.
269 You open valve BB.
270 The elephant opens valve HH.
271
272 == Minute 8 ==
273 Valves BB, DD, HH, and JJ are open, releasing <em>76</em> pressure.
274 You move to valve CC.
275 The elephant moves to valve GG.
276
277 == Minute 9 ==
278 Valves BB, DD, HH, and JJ are open, releasing <em>76</em> pressure.
279 You open valve CC.
280 The elephant moves to valve FF.
281
282 == Minute 10 ==
283 Valves BB, CC, DD, HH, and JJ are open, releasing <em>78</em> pressure.
284 The elephant moves to valve EE.
285
286 == Minute 11 ==
287 Valves BB, CC, DD, HH, and JJ are open, releasing <em>78</em> pressure.
288 The elephant opens valve EE.
289
290 (At this point, all valves are open.)
291
292 == Minute 12 ==
293 Valves BB, CC, DD, EE, HH, and JJ are open, releasing <em>81</em> pressure.
294
295 ...
296
297 == Minute 20 ==
298 Valves BB, CC, DD, EE, HH, and JJ are open, releasing <em>81</em> pressure.
299
300 ...
301
302 == Minute 26 ==
303 Valves BB, CC, DD, EE, HH, and JJ are open, releasing <em>81</em> pressure.
304 </code></pre>
305 <p>With the elephant helping, after 26 minutes, the best you could do would release a total of <code><em>1707</em></code> pressure.</p>
306 <p><em>With you and an elephant working together for 26 minutes, what is the most pressure you could release?</em></p>
307 </article>
308 <p>Your puzzle answer was <code>2587</code>.</p><p class="day-success">Both parts of this puzzle are complete! They provide two gold stars: **</p>
309 <p>At this point, you should <a href="/2022">return to your Advent calendar</a> and try another puzzle.</p>
310 <p>If you still want to see it, you can <a href="16/input" target="_blank">get your puzzle input</a>.</p>
311 <p>You can also <span class="share">[Share<span class="share-content">on
312 <a href="https://twitter.com/intent/tweet?text=I%27ve+completed+%22Proboscidea+Volcanium%22+%2D+Day+16+%2D+Advent+of+Code+2022&amp;url=https%3A%2F%2Fadventofcode%2Ecom%2F2022%2Fday%2F16&amp;related=ericwastl&amp;hashtags=AdventOfCode" target="_blank">Twitter</a>
313 <a href="javascript:void(0);" onclick="var mastodon_instance=prompt('Mastodon Instance / Server Name?'); if(typeof mastodon_instance==='string' && mastodon_instance.length){this.href='https://'+mastodon_instance+'/share?text=I%27ve+completed+%22Proboscidea+Volcanium%22+%2D+Day+16+%2D+Advent+of+Code+2022+%23AdventOfCode+https%3A%2F%2Fadventofcode%2Ecom%2F2022%2Fday%2F16'}else{return false;}" target="_blank">Mastodon</a
314 ></span>]</span> this puzzle.</p>
315 </main>
316
317 <!-- ga -->
318 <script>
319 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
320 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
321 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
322 })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
323 ga('create', 'UA-69522494-1', 'auto');
324 ga('set', 'anonymizeIp', true);
325 ga('send', 'pageview');
326 </script>
327 <!-- /ga -->
328 </body>
329 </html>