##### 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 repeatedly 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.

#### Input

The first line will contain a positive integer , the number of test cases. You may assume .

Each of the next lines will contain two integers, and . You may assume .

#### Output

Output 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 verdict.**

#### 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
```

## Comments

I keep getting Presentation Errors, and I have absolutely no idea where I'm going wrong. The only test I'm passing successfully is the last one. All my personal tests seem to be successful, so I really don't know what part of my code doesn't fit with the format.

Edit: I finally figured it out! There must be a newline in-between each spiral, but NOT at the beginning or end of the entire output. Furthermore, the rules for whether a number requires padding or not depends on the highest number of digits within each individual column, not the entire spiral.

For example, a spiral from 5-10 would look like this (with '_' signifying a space):

## > 10 9

## > _5 8

## > _6 7

As you can see, the first column requires padding on its single-digit numbers because there is a double-digit number within the column (10), whereas the second column only has single-digit numbers, so padding is required to not exist.

Hope this helps to sort out any confusion for future individuals!

There are several possibilities:

For columns with single digits, they are supposed to have single padding to be as compact as possible.

Make sure all lines have exactly the same number of character count, aka padding subject to the compact constraints (see first point).

There is supposed to be a newline at the very end last numerical output line.

I hope it helps!

I am getting whitespace errors. I think the issue at this point is that they want a very specific formatting. One hard thing to do is when you have something as follows: 1

2 3 You still need to put the spaces above the 3 to make each row have the smae number of characters.

EDIT: I got it! One main thing I wasn't looking at was making sure each row has extra spaces/as many characters as eahc other row. If you are using rstrip() or something similar, make sure you are not removing the spaces that you needed for padding.

Fixed.

I cannot seem to figure out the correct format for the answer. Can somebody please help and give some more examples? The correct matrix for 1 to 99 would be very beneficial!

Thanks

73 72 71 70 69 68 67 66 65

74 43 42 41 40 39 38 37 64 99

75 44 21 20 19 18 17 36 63 98

76 45 22 07 06 05 16 35 62 97

77 46 23 08 01 04 15 34 61 96

78 47 24 09 02 03 14 33 60 95

79 48 25 10 11 12 13 32 59 94

80 49 26 27 28 29 30 31 58 93

81 50 51 52 53 54 55 56 57 92

82 83 84 85 86 87 88 89 90 91

Note: I have blank lines between all of the rows, and I have a 0 in front of every single-digit number.

73 72 71 70 69 68 67 66 65

74 43 42 41 40 39 38 37 64 99 75 44 21 20 19 18 17 36 63 98 76 45 22 7 6 5 16 35 62 97 77 46 23 8 1 4 15 34 61 96 78 47 24 9 2 3 14 33 60 95 79 48 25 10 11 12 13 32 59 94 80 49 26 27 28 29 30 31 58 93 81 50 51 52 53 54 55 56 57 92 82 83 84 85 86 87 88 89 90 91

The above is the correct format. EDIT SORRY THE SPACING IS ALL MESSED UP

Im sure i did what the output specification told, but i just keep getting presentation error, can someone help? Also, output specification says that we need to use space to fill not 0’s?

The comments are giving conflicting answers to the problem statement.