2008 Canadian Computing Competition, Stage 1

Problem J2: Do the Shuffle

Those tiny music machines that play your digital music are really computers that keep track of and play music files. The CCC music player (C³MP) is currently in development and will be hitting the stores soon! In this problem, you have to simulate a C³MP.

The C³MP music player will hold 5 songs in memory, whose titles will always be “A”, “B”, “C”, “D” and “E”. The C³MP also keeps track of a playlist, which is an ordering of all the songs. The C³MP has 4 buttons that the user will press to rearrange the playlist and play the songs.

Initially, the C³MP playist is “A, B, C, D, E”. The 4 control buttons do the following:

Button 1: move the first song of the playlist to the end of the playlist.
For example: “A, B, C, D, E” will change to “B, C, D, E, A”.

Button 2: move the last song of the playlist to the start of the playlist.
For example, “A, B, C, D, E” will change to “E, A, B, C, D”.

Button 3: swap the first two songs of the playlist.
For example, “A, B, C, D, E” will change to “B, A, C, D, E”.

Button 4: stop rearranging songs and output the playlist.

You need to write a program to simulate a CCC music player. Your program should repeatedly ask for two positive integers b and n. Here b represents the button number that the user wants to press, 1 ≤ b ≤ 4, and n represents the number of times that the user wants to press button b. You can assume that n always satisfies 1 ≤ n ≤ 10.

The input will always finish with the pair of inputs (b = 4, n = 1) when this happens, you should print the order of songs in the current playlist and your program should end. You can assume that the user will only ever press button 4 once.

Sample Input

Input Explanation
2
1
3
1
2
3
4
1

(b = 2, n = 1 so “A, B, C, D, E” changed to “E, A, B, C, D”)

(b = 3, n = 1, so “E, A, B, C, D” changed to “A, E, B, C, D”)

(b = 2, n = 3, so “A, E, B, C, D” changed to “B, C, D, A, E”)

(b = 4, n = 1) When this happens, you should output the playlist.

Sample Output

B C D A E

All Submissions
Best Solutions


Point Value: 3
Time Limit: 2.00s
Memory Limit: 16M
Added: Sep 30, 2008

Problem Types: [Show]

Languages Allowed:
C++03, PAS, C, HASK, ASM, RUBY, PYTH2, JAVA, PHP, SCM, CAML, PERL, C#, C++11, PYTH3

Comments (Search)

omg this is so hard!

It's not hard to code, it's just hard to understand.