Simulate a locked spinner puzzle.
A locked spinner puzzle is a puzzle where you can only change wheels in groups. It is a common puzzle to achieve some value on the spinners with by only changing them in the allowed groups.
Imagine a row of D numbered wheels, each labeled sequentially with the digits 0 through 9. This is similar to what is on a briefcase combination lock.
Below this are a series of B buttons with labels that are D digits long. For example, D may be 4 and the labels are 1000 1200 1002 0111 and 0100. Pressing the button labeled 1000 moves the first wheel once, but leaves the others alone, while pressing the button labeled 1002 moves the first wheel once and the fourth wheel twice, leaving the center button unchanged.
Your task is to simulate such a locked spinner puzzle giving the final readout of the wheels.
The input to your program will be a line containing D digits (at most 10) representing the starting positions of the wheels. Following this, each line will have the button label for which button is pressed next.
An example input file would be
column 1
1234567890
line 1:0001[EOL]
2:1003[EOL]
3:0206[EOL]
4:0034[EOL]
5:1111[EOL]
6:1003[EOL]
:[EOF]
The output file should have the standard header, followed by the final positions of the wheels, followed by the standard trailer.
The correct output corresponding to the example input file would be
column 111111111122222222223
123456789012345678901234567890
line 1:Program 1 by team 0[EOL]
2:3348[EOL]
3:End of program 1 by team 0[EOL]
:[EOF]