Canadian Computing Competition: 2001 Stage 1, Junior #4, Senior #2
A spiral of numbers can start and end with any positive integers less than ~100~. Write a program which will repeatedly accept two positive integers ~x~ and ~y~ as input, and output a list of numbers from ~x~ to ~y~ inclusive, shown in a spiral. You may assume that the end value is greater than or equal to the start value.
A spiral starts with the first number in the centre. The next number appears immediately below the first number. The spiral continues with the numbers increasing in a counter-clockwise direction until the last number is printed.
The first line will contain a positive integer ~T~, the number of test cases. You may assume ~T \le 100~.
Each of the next ~T~ lines will contain two integers, ~x~ and ~y~. You may assume ~1 \le x \le y < 100~.
Output ~T~ spirals. Between every pair of adjacent spirals, there should be exactly one blank line.
For every spiral, each line should have the same number of characters printed. There must be at least one line with no leading whitespace and no trailing whitespace. Adjacent columns must be separated by exactly one space. Numbers in a column must be right-aligned and take up exactly the number of characters equal to the length of the largest integer in the column. Numbers that do not take up the full width should be padded with spaces. If a number is not present in a given location, spaces should be printed as a replacement.
Note: Unlike the original version of this problem, this version provides an output specification that must be matched exactly. Failure to adhere exactly to the specification will result in a Wrong Answer veridct.
Sample Input 1
1 10 27
Sample Output 1
27 26 16 15 14 25 17 10 13 24 18 11 12 23 19 20 21 22
Sample Input 2
2 1 2 1 1
Sample Output 2
1 2 1