-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Challenge description
It's no use; your navigation system simply isn't capable of providing walking directions in the arctic circle, and certainly not in 1018.
The Elves suggest an alternative. In times like these, North Pole rescue operations will arrange points of light in the sky to guide missing Elves back to base. Unfortunately, the message is easy to miss: the points move slowly enough that it takes hours to align them, but have so much momentum that they only stay aligned for a second. If you blink at the wrong time, it might be hours before another message appears.
You can see these points of light floating in the distance, and record their position in the sky and their velocity, the relative change in position per second (your puzzle input). The coordinates are all given from your perspective; given enough time, those positions and velocities will move the points into a cohesive message!
Rather than wait, you decide to fast-forward the process and calculate what the points will eventually spell.
For example, suppose you note the following points:
position=< 9, 1> velocity=< 0, 2>
position=< 7, 0> velocity=<-1, 0>
position=< 3, -2> velocity=<-1, 1>
position=< 6, 10> velocity=<-2, -1>
position=< 2, -4> velocity=< 2, 2>
position=<-6, 10> velocity=< 2, -2>
position=< 1, 8> velocity=< 1, -1>
position=< 1, 7> velocity=< 1, 0>
position=<-3, 11> velocity=< 1, -2>
position=< 7, 6> velocity=<-1, -1>
position=<-2, 3> velocity=< 1, 0>
position=<-4, 3> velocity=< 2, 0>
position=<10, -3> velocity=<-1, 1>
position=< 5, 11> velocity=< 1, -2>
position=< 4, 7> velocity=< 0, -1>
position=< 8, -2> velocity=< 0, 1>
position=<15, 0> velocity=<-2, 0>
position=< 1, 6> velocity=< 1, 0>
position=< 8, 9> velocity=< 0, -1>
position=< 3, 3> velocity=<-1, 1>
position=< 0, 5> velocity=< 0, -1>
position=<-2, 2> velocity=< 2, 0>
position=< 5, -2> velocity=< 1, 2>
position=< 1, 4> velocity=< 2, 1>
position=<-2, 7> velocity=< 2, -2>
position=< 3, 6> velocity=<-1, -1>
position=< 5, 0> velocity=< 1, 0>
position=<-6, 0> velocity=< 2, 0>
position=< 5, 9> velocity=< 1, -2>
position=<14, 7> velocity=<-2, 0>
position=<-3, 6> velocity=< 2, -1>
Each line represents one point. Positions are given as <X, Y> pairs: X represents how far left (negative) or right (positive) the point appears, while Y represents how far up (negative) or down (positive) the point appears.
At 0 seconds, each point has the position given. Each second, each point's velocity is added to its position. So, a point with velocity <1, -2> is moving to the right, but is moving upward twice as quickly. If this point's initial position were <3, 9>, after 3 seconds, its position would become <6, 3>.
Over time, the points listed above would move like this:
Initially:
........#.............
................#.....
.........#.#..#.......
......................
#..........#.#.......#
...............#......
....#.................
..#.#....#............
.......#..............
......#...............
...#...#.#...#........
....#..#..#.........#.
.......#..............
...........#..#.......
#...........#.........
...#.......#..........
After 1 second:
......................
......................
..........#....#......
........#.....#.......
..#.........#......#..
......................
......#...............
....##.........#......
......#.#.............
.....##.##..#.........
........#.#...........
........#...#.....#...
..#...........#.......
....#.....#.#.........
......................
......................
After 2 seconds:
......................
......................
......................
..............#.......
....#..#...####..#....
......................
........#....#........
......#.#.............
.......#...#..........
.......#..#..#.#......
....#....#.#..........
.....#...#...##.#.....
........#.............
......................
......................
......................
After 3 seconds:
......................
......................
......................
......................
......#...#..###......
......#...#...#.......
......#...#...#.......
......#####...#.......
......#...#...#.......
......#...#...#.......
......#...#...#.......
......#...#..###......
......................
......................
......................
......................
After 4 seconds:
......................
......................
......................
............#.........
........##...#.#......
......#.....#..#......
.....#..##.##.#.......
.......##.#....#......
...........#....#.....
..............#.......
....#......#...#......
.....#.....##.........
...............#......
...............#......
......................
......................
After 3 seconds, the message appeared briefly: HI. Of course, your message will be much longer and will take many more seconds to appear.
What message will eventually appear in the sky?
Challenge input
position=<-10810, 43870> velocity=< 1, -4>
position=<-21745, -10795> velocity=< 2, 1>
position=< 54771, -54515> velocity=<-5, 5>
position=< 54792, -32660> velocity=<-5, 3>
position=< 21972, 54799> velocity=<-2, -5>
position=<-43565, -43583> velocity=< 4, 4>
position=< 54775, 43864> velocity=<-5, -4>
position=< 54819, -54516> velocity=<-5, 5>
position=< 21981, 32941> velocity=<-2, -3>
position=<-32642, 43871> velocity=< 3, -4>
position=<-43614, -54516> velocity=< 4, 5>
position=<-21758, -43590> velocity=< 2, 4>
position=<-43589, -54520> velocity=< 4, 5>
position=<-10818, 43864> velocity=< 1, -4>
position=<-32646, -43584> velocity=< 3, 4>
position=< 54814, -54523> velocity=<-5, 5>
position=< 43877, -43592> velocity=<-4, 4>
position=< 54766, 32933> velocity=<-5, -3>
position=<-21749, 22006> velocity=< 2, -2>
position=<-32658, -43588> velocity=< 3, 4>
position=<-54544, -54524> velocity=< 5, 5>
position=<-43590, -21725> velocity=< 4, 2>
position=<-32638, 11076> velocity=< 3, -1>
position=< 43861, 32941> velocity=<-4, -3>
position=<-21699, -32656> velocity=< 2, 3>
position=< 11089, 11068> velocity=<-1, -1>
position=<-10805, 22000> velocity=< 1, -2>
position=<-43598, 54797> velocity=< 4, -5>
position=< 11065, -21728> velocity=<-1, 2>
position=< 54768, 54799> velocity=<-5, -5>
position=<-10810, 43871> velocity=< 1, -4>
position=< 54803, 22001> velocity=<-5, -2>
position=< 11081, -32651> velocity=<-1, 3>
position=<-10782, -10792> velocity=< 1, 1>
position=<-10824, -21722> velocity=< 1, 2>
position=<-54529, -21728> velocity=< 5, 2>
position=< 32918, -10796> velocity=<-3, 1>
position=<-10773, 32938> velocity=< 1, -3>
position=<-21706, -21723> velocity=< 2, 2>
position=<-32664, 43864> velocity=< 3, -4>
position=<-43578, 54802> velocity=< 4, -5>
position=< 11082, 22007> velocity=<-1, -2>
position=< 43838, -10795> velocity=<-4, 1>
position=< 54766, 43871> velocity=<-5, -4>
position=< 22007, -54522> velocity=<-2, 5>
position=<-43601, -21726> velocity=< 4, 2>
position=<-10825, -10791> velocity=< 1, 1>
position=< 32950, -43584> velocity=<-3, 4>
position=<-32669, 32939> velocity=< 3, -3>
position=<-43564, -54524> velocity=< 4, 5>
position=< 22014, 32934> velocity=<-2, -3>
position=<-10797, -43584> velocity=< 1, 4>
position=<-10826, -32655> velocity=< 1, 3>
position=<-32690, -10791> velocity=< 3, 1>
position=< 11059, -43588> velocity=<-1, 4>
position=<-43598, 43869> velocity=< 4, -4>
position=< 32931, 43871> velocity=<-3, -4>
position=< 32927, 32941> velocity=<-3, -3>
position=<-10798, 11068> velocity=< 1, -1>
position=< 32938, -54524> velocity=<-3, 5>
position=<-32686, -32659> velocity=< 3, 3>
position=<-43601, -54522> velocity=< 4, 5>
position=<-32633, 11074> velocity=< 3, -1>
position=< 54766, 11068> velocity=<-5, -1>
position=< 11054, -10794> velocity=<-1, 1>
position=<-10805, -10791> velocity=< 1, 1>
position=<-54533, 43872> velocity=< 5, -4>
position=<-43590, 11076> velocity=< 4, -1>
position=< 32954, -54524> velocity=<-3, 5>
position=< 43877, -54524> velocity=<-4, 5>
position=< 21982, -43589> velocity=<-2, 4>
position=<-10824, -54518> velocity=< 1, 5>
position=<-32666, -54521> velocity=< 3, 5>
position=<-10789, -54523> velocity=< 1, 5>
position=< 32936, -10796> velocity=<-3, 1>
position=< 43850, 22008> velocity=<-4, -2>
position=< 43870, -21722> velocity=<-4, 2>
position=< 11059, -10792> velocity=<-1, 1>
position=< 43875, -32651> velocity=<-4, 3>
position=< 54769, -32653> velocity=<-5, 3>
position=<-32633, -43586> velocity=< 3, 4>
position=< 11046, 22007> velocity=<-1, -2>
position=<-10794, -54515> velocity=< 1, 5>
position=<-43598, -21725> velocity=< 4, 2>
position=< 11083, -32660> velocity=<-1, 3>
position=<-54504, -21728> velocity=< 5, 2>
position=< 43842, -32651> velocity=<-4, 3>
position=<-54533, -10794> velocity=< 5, 1>
position=<-43566, 22008> velocity=< 4, -2>
position=< 54817, 43873> velocity=<-5, -4>
position=<-21742, -21725> velocity=< 2, 2>
position=< 43836, -10793> velocity=<-4, 1>
position=<-32634, -21719> velocity=< 3, 2>
position=< 32918, 54800> velocity=<-3, -5>
position=< 32923, 22000> velocity=<-3, -2>
position=< 54774, -32651> velocity=<-5, 3>
position=< 11091, -32651> velocity=<-1, 3>
position=< 32902, -32654> velocity=<-3, 3>
position=<-21714, -54521> velocity=< 2, 5>
position=<-21755, -21726> velocity=< 2, 2>
position=<-21707, 22009> velocity=< 2, -2>
position=< 11099, -54522> velocity=<-1, 5>
position=< 54766, 11071> velocity=<-5, -1>
position=< 54803, -54521> velocity=<-5, 5>
position=< 11086, -54523> velocity=<-1, 5>
position=<-32641, 11068> velocity=< 3, -1>
position=<-10816, -54519> velocity=< 1, 5>
position=< 21991, -54516> velocity=<-2, 5>
position=<-10810, 22009> velocity=< 1, -2>
position=<-21729, 32933> velocity=< 2, -3>
position=<-21734, -10793> velocity=< 2, 1>
position=<-32674, -10790> velocity=< 3, 1>
position=< 21970, -21722> velocity=<-2, 2>
position=< 54802, -10792> velocity=<-5, 1>
position=<-43564, 43864> velocity=< 4, -4>
position=< 43878, -21720> velocity=<-4, 2>
position=< 32912, 54801> velocity=<-3, -5>
position=<-32674, -10788> velocity=< 3, 1>
position=<-43611, -32656> velocity=< 4, 3>
position=<-43572, 43873> velocity=< 4, -4>
position=<-21726, 32932> velocity=< 2, -3>
position=< 32926, -43590> velocity=<-3, 4>
position=< 54814, -10789> velocity=<-5, 1>
position=< 43834, 54796> velocity=<-4, -5>
position=<-43578, -32652> velocity=< 4, 3>
position=<-43590, -54523> velocity=< 4, 5>
position=<-21721, 22009> velocity=< 2, -2>
position=< 11043, 22000> velocity=<-1, -2>
position=<-32678, 54796> velocity=< 3, -5>
position=<-54496, 22005> velocity=< 5, -2>
position=<-32669, -54516> velocity=< 3, 5>
position=<-54525, 32933> velocity=< 5, -3>
position=< 22023, -32659> velocity=<-2, 3>
position=< 43866, 43869> velocity=<-4, -4>
position=< 22031, -54523> velocity=<-2, 5>
position=< 11067, 22006> velocity=<-1, -2>
position=<-43606, 43865> velocity=< 4, -4>
position=<-21737, 11075> velocity=< 2, -1>
position=<-54510, -43590> velocity=< 5, 4>
position=< 32918, 54801> velocity=<-3, -5>
position=<-10823, -10789> velocity=< 1, 1>
position=< 22027, 54805> velocity=<-2, -5>
position=<-21721, -43589> velocity=< 2, 4>
position=< 11054, 11069> velocity=<-1, -1>
position=<-32656, -32656> velocity=< 3, 3>
position=< 54766, 11077> velocity=<-5, -1>
position=< 22029, -32660> velocity=<-2, 3>
position=< 32942, -10789> velocity=<-3, 1>
position=<-43570, -32655> velocity=< 4, 3>
position=< 32926, 43871> velocity=<-3, -4>
position=<-43590, -21722> velocity=< 4, 2>
position=< 32926, -54522> velocity=<-3, 5>
position=<-21714, -43587> velocity=< 2, 4>
position=<-21710, -54520> velocity=< 2, 5>
position=< 32952, 43864> velocity=<-3, -4>
position=<-54536, 22004> velocity=< 5, -2>
position=< 32913, 11068> velocity=<-3, -1>
position=< 11098, 22009> velocity=<-1, -2>
position=<-10817, 11068> velocity=< 1, -1>
position=<-54493, 43866> velocity=< 5, -4>
position=< 43876, -32651> velocity=<-4, 3>
position=<-43589, 32932> velocity=< 4, -3>
position=< 32955, -32652> velocity=<-3, 3>
position=< 21999, -10787> velocity=<-2, 1>
position=< 21982, 32941> velocity=<-2, -3>
position=< 43883, -54524> velocity=<-4, 5>
position=<-54533, -32651> velocity=< 5, 3>
position=< 32953, 43869> velocity=<-3, -4>
position=<-21750, 54804> velocity=< 2, -5>
position=<-54554, -54520> velocity=< 5, 5>
position=<-21723, 22000> velocity=< 2, -2>
position=< 32918, -10789> velocity=<-3, 1>
position=<-10801, -21728> velocity=< 1, 2>
position=<-43561, 54805> velocity=< 4, -5>
position=<-10802, 22004> velocity=< 1, -2>
position=< 22002, 32938> velocity=<-2, -3>
position=< 11097, -32651> velocity=<-1, 3>
position=<-21724, 22000> velocity=< 2, -2>
position=<-54543, -43592> velocity=< 5, 4>
position=< 54775, 54796> velocity=<-5, -5>
position=< 11066, 54796> velocity=<-1, -5>
position=< 54814, 54798> velocity=<-5, -5>
position=< 32927, -43592> velocity=<-3, 4>
position=< 54803, 43872> velocity=<-5, -4>
position=<-43569, -54516> velocity=< 4, 5>
position=<-54498, 54796> velocity=< 5, -5>
position=< 54786, 43868> velocity=<-5, -4>
position=< 43850, 43873> velocity=<-4, -4>
position=<-43569, 11074> velocity=< 4, -1>
position=<-21714, 22000> velocity=< 2, -2>
position=< 54809, 32941> velocity=<-5, -3>
position=<-43590, -32653> velocity=< 4, 3>
position=<-54535, 54800> velocity=< 5, -5>
position=< 43863, 22007> velocity=<-4, -2>
position=< 43871, -54516> velocity=<-4, 5>
position=<-10810, -10789> velocity=< 1, 1>
position=<-43605, 43868> velocity=< 4, -4>
position=< 32942, 22008> velocity=<-3, -2>
position=<-21701, -54524> velocity=< 2, 5>
position=<-21722, -21721> velocity=< 2, 2>
position=<-32666, -43590> velocity=< 3, 4>
position=< 32926, -10792> velocity=<-3, 1>
position=< 22011, -10787> velocity=<-2, 1>
position=< 43846, 32935> velocity=<-4, -3>
position=< 22026, -10788> velocity=<-2, 1>
position=<-32682, -54515> velocity=< 3, 5>
position=<-32666, -10792> velocity=< 3, 1>
position=< 11071, 22004> velocity=<-1, -2>
position=<-10790, -43585> velocity=< 1, 4>
position=< 32934, -43590> velocity=<-3, 4>
position=<-32662, -21723> velocity=< 3, 2>
position=< 54790, -10790> velocity=<-5, 1>
position=< 11082, 22002> velocity=<-1, -2>
position=< 54766, 54801> velocity=<-5, -5>
position=< 54794, -43584> velocity=<-5, 4>
position=<-10789, 54805> velocity=< 1, -5>
position=<-43622, -21719> velocity=< 4, 2>
position=<-32682, 54796> velocity=< 3, -5>
position=< 43847, 22009> velocity=<-4, -2>
position=< 43890, 22007> velocity=<-4, -2>
position=<-21742, 43867> velocity=< 2, -4>
position=< 22023, 43869> velocity=<-2, -4>
position=< 43858, 43872> velocity=<-4, -4>
position=<-21697, -43583> velocity=< 2, 4>
position=< 43871, 32933> velocity=<-4, -3>
position=< 21980, 11077> velocity=<-2, -1>
position=< 43871, 32935> velocity=<-4, -3>
position=<-32669, -21727> velocity=< 3, 2>
position=<-10774, 11073> velocity=< 1, -1>
position=<-43594, -32655> velocity=< 4, 3>
position=<-21742, 32940> velocity=< 2, -3>
position=<-43595, 11077> velocity=< 4, -1>
position=<-54510, 22005> velocity=< 5, -2>
position=< 32912, 32932> velocity=<-3, -3>
position=<-54493, 32932> velocity=< 5, -3>
position=<-54497, -10796> velocity=< 5, 1>
position=< 32923, 43868> velocity=<-3, -4>
position=<-10815, -43588> velocity=< 1, 4>
position=< 32915, -21728> velocity=<-3, 2>
position=< 32931, 54805> velocity=<-3, -5>
position=< 32906, 22001> velocity=<-3, -2>
position=< 21986, -10796> velocity=<-2, 1>
position=<-54526, -43592> velocity=< 5, 4>
position=< 54822, 22000> velocity=<-5, -2>
position=< 32926, -43585> velocity=<-3, 4>
position=< 32931, -10791> velocity=<-3, 1>
position=<-54496, 43869> velocity=< 5, -4>
position=< 22005, 11073> velocity=<-2, -1>
position=<-54525, 54805> velocity=< 5, -5>
position=<-21710, 43867> velocity=< 2, -4>
position=< 54814, -43586> velocity=<-5, 4>
position=< 22002, 11074> velocity=<-2, -1>
position=<-43606, -10787> velocity=< 4, 1>
position=< 32913, -54524> velocity=<-3, 5>
position=< 32928, -43583> velocity=<-3, 4>
position=<-10826, 32939> velocity=< 1, -3>
position=<-10769, -10787> velocity=< 1, 1>
position=<-43574, 43870> velocity=< 4, -4>
position=<-32632, -54515> velocity=< 3, 5>
position=<-43613, 32941> velocity=< 4, -3>
position=< 11086, -43590> velocity=<-1, 4>
position=<-10773, -54517> velocity=< 1, 5>
position=<-54527, -43587> velocity=< 5, 4>
position=< 22014, -21727> velocity=<-2, 2>
position=< 32923, 22005> velocity=<-3, -2>
position=<-54493, 43865> velocity=< 5, -4>
position=<-54541, 43866> velocity=< 5, -4>
position=< 22019, 32941> velocity=<-2, -3>
position=< 11067, -54516> velocity=<-1, 5>
position=< 32912, -21723> velocity=<-3, 2>
position=<-10826, 32939> velocity=< 1, -3>
position=<-32637, -32659> velocity=< 3, 3>
position=<-43574, 11075> velocity=< 4, -1>
position=< 43834, -54521> velocity=<-4, 5>
position=<-43563, -32660> velocity=< 4, 3>
position=<-43601, -21725> velocity=< 4, 2>
position=<-32647, 54796> velocity=< 3, -5>
position=<-21758, -43592> velocity=< 2, 4>
position=< 54766, 32938> velocity=<-5, -3>
position=< 32946, -54524> velocity=<-3, 5>
position=<-21734, 11074> velocity=< 2, -1>
position=< 43892, -10787> velocity=<-4, 1>
position=< 11047, -10790> velocity=<-1, 1>
position=<-10794, -43590> velocity=< 1, 4>
position=< 54793, 11077> velocity=<-5, -1>
position=<-32633, 22000> velocity=< 3, -2>
position=<-10770, -54516> velocity=< 1, 5>
position=<-21749, 54802> velocity=< 2, -5>
position=< 54782, 11073> velocity=<-5, -1>
position=<-43564, -32651> velocity=< 4, 3>
position=<-54530, -21721> velocity=< 5, 2>
position=< 11096, -32655> velocity=<-1, 3>
position=<-54525, 54803> velocity=< 5, -5>
position=< 43863, -21720> velocity=<-4, 2>
position=<-32673, -54520> velocity=< 3, 5>
position=<-43562, 11071> velocity=< 4, -1>
position=< 32923, 43870> velocity=<-3, -4>
position=< 54791, 43873> velocity=<-5, -4>
position=< 54815, -10787> velocity=<-5, 1>
position=<-32634, -32653> velocity=< 3, 3>
position=<-54506, -54521> velocity=< 5, 5>
position=<-10821, 54796> velocity=< 1, -5>
position=<-32653, 32941> velocity=< 3, -3>
position=< 32950, 43869> velocity=<-3, -4>
position=< 43895, 54805> velocity=<-4, -5>
position=<-54506, 54804> velocity=< 5, -5>
position=<-43618, -10788> velocity=< 4, 1>
position=< 22013, 11077> velocity=<-2, -1>
position=<-21746, -32651> velocity=< 2, 3>
position=<-43619, -54522> velocity=< 4, 5>
position=< 22021, 54801> velocity=<-2, -5>
position=< 43858, 54804> velocity=<-4, -5>
position=< 43887, 11074> velocity=<-4, -1>
position=<-43602, -43588> velocity=< 4, 4>
position=< 43835, 32936> velocity=<-4, -3>
position=<-10823, -54517> velocity=< 1, 5>
position=< 43834, -43584> velocity=<-4, 4>
position=< 43883, 11068> velocity=<-4, -1>
position=<-43561, -10794> velocity=< 4, 1>
position=< 11070, -10788> velocity=<-1, 1>
position=< 11098, 22000> velocity=<-1, -2>
position=<-10767, 22000> velocity=< 1, -2>
position=< 54787, -54517> velocity=<-5, 5>
position=< 22002, 54804> velocity=<-2, -5>
position=<-54543, 22009> velocity=< 5, -2>
position=< 43869, -10792> velocity=<-4, 1>
position=<-10797, -43591> velocity=< 1, 4>
position=< 54806, 11075> velocity=<-5, -1>
position=< 43834, -32652> velocity=<-4, 3>
position=< 54766, 54799> velocity=<-5, -5>
position=< 54790, -10790> velocity=<-5, 1>
position=< 32955, 43871> velocity=<-3, -4>
Challenge year
2018
Metadata
Metadata
Assignees
Labels
Projects
Status