Mercurial > hg > aoc
comparison 2017/day03/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 |
comparison
equal
deleted
inserted
replaced
33:bc652fa0a645 | 34:049fb8e56025 |
---|---|
1 --- Day 3: Spiral Memory --- | |
2 | |
3 You come across an experimental new kind of memory stored on an | |
4 infinite two-dimensional grid. | |
5 | |
6 Each square on the grid is allocated in a spiral pattern starting at a | |
7 location marked 1 and then counting up while spiraling outward. For | |
8 example, the first few squares are allocated like this: | |
9 | |
10 17 16 15 14 13 | |
11 18 5 4 3 12 | |
12 19 6 1 2 11 | |
13 20 7 8 9 10 | |
14 21 22 23---> ... | |
15 | |
16 While this is very space-efficient (no squares are skipped), requested | |
17 data must be carried back to square 1 (the location of the only access | |
18 port for this memory system) by programs that can only move up, down, | |
19 left, or right. They always take the shortest path: the Manhattan | |
20 Distance between the location of the data and square 1. | |
21 | |
22 For example: | |
23 | |
24 Data from square 1 is carried 0 steps, since it's at the access port. | |
25 | |
26 Data from square 12 is carried 3 steps, such as: down, left, left. | |
27 | |
28 Data from square 23 is carried only 2 steps: up twice. | |
29 | |
30 Data from square 1024 must be carried 31 steps. | |
31 | |
32 How many steps are required to carry the data from the square | |
33 identified in your puzzle input all the way to the access port? | |
34 | |
35 Your puzzle answer was 371. | |
36 | |
37 --- Part Two --- | |
38 | |
39 As a stress test on the system, the programs here clear the grid and | |
40 then store the value 1 in square 1. Then, in the same allocation order | |
41 as shown above, they store the sum of the values in all adjacent | |
42 squares, including diagonals. | |
43 | |
44 So, the first few squares' values are chosen as follows: | |
45 | |
46 Square 1 starts with the value 1. | |
47 | |
48 Square 2 has only one adjacent filled square (with value 1), so it | |
49 also stores 1. | |
50 | |
51 Square 3 has both of the above squares as neighbors and stores the | |
52 sum of their values, 2. | |
53 | |
54 Square 4 has all three of the aforementioned squares as neighbors | |
55 and stores the sum of their values, 4. | |
56 | |
57 Square 5 only has the first and fourth squares as neighbors, so it | |
58 gets the value 5. | |
59 | |
60 | |
61 Once a square is written, its value does not change. Therefore, the | |
62 first few squares would receive the following values: | |
63 | |
64 147 142 133 122 59 | |
65 304 5 4 2 57 | |
66 330 10 1 1 54 | |
67 351 11 23 25 26 | |
68 362 747 806---> ... | |
69 | |
70 What is the first value written that is larger than your puzzle input? | |
71 | |
72 Your puzzle answer was 369601. | |
73 | |
74 Both parts of this puzzle are complete! They provide two gold stars: ** |