view 2017/day16/problem @ 35:1d99d733cf13 default tip @

day08: replace static foreach with workaround
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Tue, 16 Jan 2018 11:28:55 -0500
parents 049fb8e56025
children
line wrap: on
line source

--- Day 16: Permutation Promenade ---

You come upon a very unusual sight; a group of programs here appear to
be dancing.

There are sixteen programs in total, named a through p. They start by
standing in a line: a stands in position 0, b stands in position 1,
and so on until p, which stands in position 15.

The programs' dance consists of a sequence of dance moves:

    Spin, written sX, makes X programs move from the end to the front,
    but maintain their order otherwise. (For example, s3 on abcde
    produces cdeab).

    Exchange, written xA/B, makes the programs at positions A and B
    swap places.

    Partner, written pA/B, makes the programs named A and B swap
    places.


For example, with only five programs standing in a line (abcde), they
could do the following dance:

    s1, a spin of size 1: eabcd.

    x3/4, swapping the last two programs: eabdc.

    pe/b, swapping programs e and b: baedc.

After finishing their dance, the programs end up in order baedc.

You watch the dance for a while and record their dance moves (your
puzzle input). In what order are the programs standing after their
dance?

Your puzzle answer was bkgcdefiholnpmja.

--- Part Two ---

Now that you're starting to get a feel for the dance moves, you turn
your attention to the dance as a whole.

Keeping the positions they ended up in from their previous dance, the
programs perform it again and again: including the first dance, a
total of one billion (1000000000) times.

In the example above, their second dance would begin with the order
baedc, and use the same dance moves:

    s1, a spin of size 1: cbaed.

    x3/4, swapping the last two programs: cbade.

    pe/b, swapping programs e and b: ceadb.

In what order are the programs standing after their billion dances?

Your puzzle answer was knmdfoijcbpghlea.

Both parts of this puzzle are complete! They provide two gold stars: **