Yet Another Array Restoration
Contest: Codeforces Round 667 (Div. 3)
Difficulty rating: 1200
Tags: brute force, math, number theory

We have a secret array. You don't know this array and you have to restore it. However, you know some facts about this array:

- The array consists of $$$n$$$ distinct positive (greater than $$$0$$$) integers.
- The array contains two elements $$$x$$$ and $$$y$$$ (these elements are known for you) such that $$$x < y$$$.
- If you sort the array in increasing order (such that $$$a_1 < a_2 < \ldots < a_n$$$), differences between all adjacent (consecutive) elements are equal (i.e. $$$a_2 - a_1 = a_3 - a_2 = \ldots = a_n - a_{n-1})$$$.

It can be proven that such an array always exists under the constraints given below.

Among all possible arrays that satisfy the given conditions, we ask you to restore one which has the minimum possible maximum element. In other words, you have to minimize $$$\max(a_1, a_2, \dots, a_n)$$$.

You have to answer $$$t$$$ independent test cases.

Input format:
The first line of the input contains one integer $$$t$$$ ($$$1 \le t \le 100$$$) — the number of test cases. Then $$$t$$$ test cases follow.

The only line of the test case contains three integers $$$n$$$, $$$x$$$ and $$$y$$$ ($$$2 \le n \le 50$$$; $$$1 \le x < y \le 50$$$) — the length of the array and two elements that are present in the array, respectively.

Output format:
For each test case, print the answer: $$$n$$$ integers $$$a_1, a_2, \dots, a_n$$$ ($$$1 \le a_i \le 10^9$$$), where $$$a_i$$$ is the $$$i$$$-th element of the required array. If there are several answers, you can print any (it also means that the order of elements doesn't matter).

It can be proven that such an array always exists under the given constraints.

Constraints:
Time limit: 1.0 s
Memory limit: 256.0 MB

Example input:
5
2 1 49
5 20 50
6 20 50
5 3 8
9 13 22

Example output:
1 49 
20 40 30 50 10
26 32 20 38 44 50 
8 23 18 13 3 
1 10 13 4 19 22 25 16 7

Editorial:
The only fact required to solve this problem is just to notice that the answer array is just an arithmetic progression. After that, we can fix the first element $$$start$$$, fix the difference $$$d$$$, construct the array $$$[start, start + d, start + 2d, \dots, start + d \cdot (n-1)]$$$, check if $$$x$$$ and $$$y$$$ are in this array and, if yes, update the answer with $$$start + d \cdot (n-1)$$$. This is $$$O(n^3)$$$ solution.
There are faster solutions, though. Other author's solution is $$$O(n \sqrt{y})$$$ but I didn't want to make this problem harder, so I allowed $$$O(n^3)$$$ solutions.
It is obvious that the difference of the progression is some divisor of $$$y-x$$$. Let it be $$$d$$$. Let's add some elements starting from $$$y$$$ "to the left" ($$$y, y-d, y-2d$$$ and so on) and stop if we reach $$$n$$$ elements or the next element is less than $$$1$$$. If we didn't find $$$x$$$ among these elements, just skip this difference, it is useless for us. Otherwise, if we have less than $$$n$$$ elements, let's add $$$y+d, y+2d, y+3d$$$ and so on until we get $$$n$$$ elements. And then update the answer with the maximum element of the array.
There is also a solution in $$$O(n + \sqrt{y})$$$ with some greedy observations :)