Mercurial > hg > aoc
annotate 2017/day12/problem @ 34:049fb8e56025
Add problem statements and inputs
author | Jordi Gutiérrez Hermoso <jordigh@octave.org> |
---|---|
date | Tue, 09 Jan 2018 21:51:44 -0500 |
parents | |
children |
rev | line source |
---|---|
34
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
1 --- Day 12: Digital Plumber --- |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
2 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
3 Walking along the memory banks of the stream, you find a small village |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
4 that is experiencing a little confusion: some programs can't |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
5 communicate with each other. |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
6 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
7 Programs in this village communicate using a fixed system of pipes. |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
8 Messages are passed between programs using these pipes, but most |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
9 programs aren't connected to each other directly. Instead, programs |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
10 pass messages between each other until the message reaches the |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
11 intended recipient. |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
12 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
13 For some reason, though, some of these messages aren't ever reaching |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
14 their intended recipient, and the programs suspect that some pipes are |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
15 missing. They would like you to investigate. |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
16 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
17 You walk through the village and record the ID of each program and the |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
18 IDs with which it can communicate directly (your puzzle input). Each |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
19 program has one or more programs with which it can communicate, and |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
20 these pipes are bidirectional; if 8 says it can communicate with 11, |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
21 then 11 will say it can communicate with 8. |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
22 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
23 You need to figure out how many programs are in the group that |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
24 contains program ID 0. |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
25 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
26 For example, suppose you go door-to-door like a travelling salesman |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
27 and record the following list: |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
28 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
29 0 <-> 2 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
30 1 <-> 1 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
31 2 <-> 0, 3, 4 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
32 3 <-> 2, 4 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
33 4 <-> 2, 3, 6 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
34 5 <-> 6 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
35 6 <-> 4, 5 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
36 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
37 In this example, the following programs are in the group that contains |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
38 program ID 0: |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
39 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
40 Program 0 by definition. |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
41 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
42 Program 2, directly connected to program 0. |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
43 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
44 Program 3 via program 2. |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
45 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
46 Program 4 via program 2. |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
47 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
48 Program 5 via programs 6, then 4, then 2. |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
49 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
50 Program 6 via programs 4, then 2. |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
51 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
52 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
53 Therefore, a total of 6 programs are in this group; all but program 1, |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
54 which has a pipe that connects it to itself. |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
55 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
56 How many programs are in the group that contains program ID 0? |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
57 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
58 Your puzzle answer was 141. |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
59 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
60 --- Part Two --- |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
61 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
62 There are more programs than just the ones in the group containing |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
63 program ID 0. The rest of them have no way of reaching that group, and |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
64 still might have no way of reaching each other. |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
65 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
66 A group is a collection of programs that can all communicate via pipes |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
67 either directly or indirectly. The programs you identified just a |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
68 moment ago are all part of the same group. Now, they would like you to |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
69 determine the total number of groups. |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
70 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
71 In the example above, there were 2 groups: one consisting of programs |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
72 0,2,3,4,5,6, and the other consisting solely of program 1. |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
73 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
74 How many groups are there in total? |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
75 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
76 Your puzzle answer was 171. |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
77 |
049fb8e56025
Add problem statements and inputs
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
78 Both parts of this puzzle are complete! They provide two gold stars: ** |