Function advent_solutions::advent2017::day05::part1
[−]
[src]
pub fn part1(jumps: &Vec<isize>) -> usize
In addition, these instructions are a little strange; after each jump,
the offset of that instruction increases by 1. So, if you come across
an offset of 3, you would move three instructions forward, but change
it to a 4 for the next time it is encountered.
For example, consider the following list of jump offsets:
0
3
0
1
-3
Positive jumps ("forward") move downward; negative jumps move upward. For legibility in this example, these offset values will be written all on one line, with the current instruction marked in parentheses. The following steps would be taken before an exit is found:
-
(0) 3 0 1 -3- before we have taken any steps. -
(1) 3 0 1 -3- jump with offset0(that is, don't jump at all). Fortunately, the instruction is then incremented to1. -
2 (3) 0 1 -3- step forward because of the instruction we just modified. The first instruction is incremented again, now to2. -
2 4 0 1 (-3)- jump all the way to the end; leave a4behind. -
2 (4) 0 1 -2- go back to where we just were; increment-3to-2. -
2 5 0 1 -2- jump4steps forward, escaping the maze.
In this example, the exit is reached in 5 steps.
assert_eq!(part1(&input), 5);
How many steps does it take to reach the exit?