CCC ’01 S2 – Spirals

Canadian Computing Competition: 2001 Stage 1, Junior #4, Senior #2

A spiral of numbers can start and end with any positive integers less than . Write a program which will accept two positive integers  and  as input, and output a list of numbers from  to  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.

Sample Input 1

Copy

10
27

Sample Output 1

Copy

      27 26
16 15 14 25
17 10 13 24
18 11 12 23
19 20 21 22

Sample Input 2

Copy

7
12

Sample Output 2

Copy

12 11
 7 10
 8  9

Solution