4 <meta charset=
"utf-8"/>
5 <title>Day
7 - Advent of Code
</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?3"/>
9 <link rel=
"shortcut icon" href=
"/favicon.ico?2"/>
15 Oh, hello! Funny seeing you here.
17 I appreciate your enthusiasm, but you aren't going to find much down here.
18 There certainly aren't clues to any of the puzzles. You do risk spoiling a few
19 surprises for yourself, though. Best to play the normal way and discover
20 everything as it was intended, I think. The best surprises don't even appear
21 in the source until you unlock them for real.
23 Please be careful with automated requests; I'm not Google, and I can only take
24 so much traffic. Please be considerate so that everyone gets to play.
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, ads, social media),
28 I built the whole thing myself, including the design, animations, prose, and
31 The puzzles probably took the longest; the easiest ones were around 45 minutes
32 each, but the harder ones took 2-3 hours, some even longer than that. A lot of
33 effort went into building this thing - I hope you're enjoying playing it as
34 much as I enjoyed making it for you!
36 If you'd like to hang out, I'm @ericwastl on Twitter.
91 <header><h1><a href=
"/">Advent of Code
</a></h1><div class=
"user">Neil Smith
<span class=
"star-count">26*
</span></div><nav><ul><li><a href=
"/about">[About]
</a></li><li><a href=
"/stats">[Stats]
</a></li><li><a href=
"/leaderboard">[Leaderboard]
</a></li><li><a href=
"/settings">[Settings]
</a></li><li><a href=
"/auth/logout">[Log out]
</a></li></ul></nav></header>
94 <script async
src=
"//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
95 <!-- Advent of Code Wide Skyscraper -->
96 <ins class=
"adsbygoogle"
97 style=
"display:inline-block;width:160px;height:600px"
98 data-ad-client=
"ca-pub-9420604735624631"
99 data-ad-slot=
"8014013294"></ins>
101 (adsbygoogle = window.adsbygoogle || []).push({});
106 <article class=
"day-desc"><h2>--- Day
7: Some Assembly Required ---
</h2><p>This year, Santa brought little Bobby Tables a set of wires and
<a href=
"https://en.wikipedia.org/wiki/Bitwise_operation">bitwise logic gates
</a>! Unfortunately, little Bobby is a little under the recommended age range, and he needs help
<span title=
"You had one of these as a kid, right?">assembling the circuit
</span>.
</p>
107 <p>Each wire has an identifier (some lowercase letters) and can carry a
<a href=
"https://en.wikipedia.org/wiki/16-bit">16-bit
</a> signal (a number from
<code>0</code> to
<code>65535</code>). A signal is provided to each wire by a gate, another wire, or some specific value. Each wire can only get a signal from one source, but can provide its signal to multiple destinations. A gate provides no signal until all of its inputs have a signal.
</p>
108 <p>The included instructions booklet describes how to connect the parts together:
<code>x AND y -
> z
</code> means to connect wires
<code>x
</code> and
<code>y
</code> to an AND gate, and then connect its output to wire
<code>z
</code>.
</p>
111 <li><code>123 -
> x
</code> means that the signal
<code>123</code> is provided to wire
<code>x
</code>.
</li>
112 <li><code>x AND y -
> z
</code> means that the
<a href=
"https://en.wikipedia.org/wiki/Bitwise_operation#AND">bitwise AND
</a> of wire
<code>x
</code> and wire
<code>y
</code> is provided to wire
<code>z
</code>.
</li>
113 <li><code>p LSHIFT
2 -
> q
</code> means that the value from wire
<code>p
</code> is
<a href=
"https://en.wikipedia.org/wiki/Logical_shift">left-shifted
</a> by
<code>2</code> and then provided to wire
<code>q
</code>.
</li>
114 <li><code>NOT e -
> f
</code> means that the
<a href=
"https://en.wikipedia.org/wiki/Bitwise_operation#NOT">bitwise complement
</a> of the value from wire
<code>e
</code> is provided to wire
<code>f
</code>.
</li>
116 <p>Other possible gates include
<code>OR
</code> (
<a href=
"https://en.wikipedia.org/wiki/Bitwise_operation#OR">bitwise OR
</a>) and
<code>RSHIFT
</code> (
<a href=
"https://en.wikipedia.org/wiki/Logical_shift">right-shift
</a>). If, for some reason, you'd like to
<em>emulate
</em> the circuit instead, almost all programming languages (for example,
<a href=
"https://en.wikipedia.org/wiki/Bitwise_operations_in_C">C
</a>,
<a href=
"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators">JavaScript
</a>, or
<a href=
"https://wiki.python.org/moin/BitwiseOperators">Python
</a>) provide operators for these gates.
</p>
117 <p>For example, here is a simple circuit:
</p>
127 <p>After it is run, these are the signals on the wires:
</p>
137 <p>In little Bobby's kit's instructions booklet (provided as your puzzle input), what signal is ultimately provided to
<em>wire
<code>a
</code></em>?
</p>
139 <p>Your puzzle answer was
<code>16076</code>.
</p><article class=
"day-desc"><h2>--- Part Two ---
</h2><p>Now, take the signal you got on wire
<code>a
</code>, override wire
<code>b
</code> to that signal, and reset the other wires (including wire
<code>a
</code>). What new signal is ultimately provided to wire
<code>a
</code>?
</p>
141 <p>Your puzzle answer was
<code>2797</code>.
</p><p class=
"day-success">Both parts of this puzzle are complete! They provide two gold stars: **
</p>
142 <p>At this point, you should
<a href=
"/">return to your advent calendar
</a> and try another puzzle.
</p>
143 <p>If you still want to see it, you can
<a href=
"/day/7/input" target=
"_blank">get your puzzle input
</a>.
</p>
144 <p>You can also
<span class=
"share">[Share
<span class=
"share-content">on
145 <a href=
"https://twitter.com/intent/tweet?text=I%27ve+completed+%22Some+Assembly+Required%22+%2D+Day+7+%2D+Advent+of+Code&url=http%3A%2F%2Fadventofcode%2Ecom%2Fday%2F7&related=ericwastl&hashtags=AdventOfCode" target=
"_blank">Twitter
</a>
146 <a href=
"https://plus.google.com/share?url=http%3A%2F%2Fadventofcode%2Ecom%2Fday%2F7" target=
"_blank">Google+
</a>
147 <a href=
"http://www.reddit.com/submit?url=http%3A%2F%2Fadventofcode%2Ecom%2Fday%2F7&title=I%27ve+completed+%22Some+Assembly+Required%22+%2D+Day+7+%2D+Advent+of+Code" target=
"_blank">Reddit
</a
154 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
155 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=
1*new Date();a=s.createElement(o),
156 m=s.getElementsByTagName(o)[
0];a.async=
1;a.src=g;m.parentNode.insertBefore(a,m)
157 })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
158 ga('create', 'UA-
69522494-
1', 'auto');
159 ga('send', 'pageview');