You are using an outdated browser. Please update your browser for a better user experience.

Coding Challenge Three

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). Write a program that outputs the program's final positions after the dance.

Example input: abcdefghijklmnop
Example output: ponmlkjihgfedcba

Input file can be copied from here.

Submission Rules:

  • Submissions must be sent to with the subject "WBC Coding Challenge 3" and have the program attached.
  • Submissions received MUST come be from a Western email (ending in
  • Submissions will be tested with the input file ("WBC_CodingChallenge3_Input.txt") in the same directory as the submitted program.
  • Submissions must be able run without arguments (all file opening and reading must happen in the program).
  • Allowed programming languages: Java, Python, C/C#/C++.
  • Individual and group participation is welcome (only one gift card will be awarded to winning submission).

    Happy coding!

This problem was created by Eric Wastl, link to his portfolio page