Taisia and Dice (Codeforces 1790B)
Tags: Greedy, math

Taisia has $$$n$$$ six-sided dice. Each face of the die is marked with a number from $$$1$$$ to $$$6$$$, each number from $$$1$$$ to $$$6$$$ is used once.Taisia rolls all $$$n$$$ dice at the same time and gets a sequence of values $$$a_1, a_2, \ldots, a_n$$$ ($$$1 \le a_i \le 6$$$), where $$$a_i$$$ is the value on the upper face of the $$$i$$$-th dice. The sum of this sequence is equal to $$$s$$$.Suddenly, Taisia's pet cat steals exactly one dice with maximum value $$$a_i$$$ and calculates the sum of the values on the remaining $$$n-1$$$ dice, which is equal to $$$r$$$.You only know the number of dice $$$n$$$ and the values of $$$s$$$, $$$r$$$. Restore a possible sequence $$$a$$$ that fulfills the constraints.

Input: The first line contains the integer $$$t$$$ ($$$1 \le t \le 1000$$$) — the number of testcases.Each testcase is given on a separate line and contains three integers $$$n$$$, $$$s$$$, $$$r$$$ ($$$2 \le n \le 50$$$, $$$1 \le r < s \le 300$$$).It is guaranteed that a solution exists.

Output: For each testcase, print: $$$n$$$ integers $$$a_1, a_2, \ldots, a_n$$$ in any order. It is guaranteed that such sequence exists.If there are multiple solutions, print any.


Sample Inputs:
7
2 2 1
2 4 2
4 9 5
5 17 11
3 15 10
4 4 3
5 20 15

Sample Outputs:
1 1
2 2 
1 2 2 4
6 4 2 3 2
5 5 5
1 1 1 1
1 4 5 5 5

Solution (Python):
for _ in range(int(input())):
    (n, s, r) = map(int, input().split())
    cat = r // (n - 1)
    remain = r % (n - 1)
    print(s - r, ' '.join(remain * str(cat + 1) + (n - 1 - remain) * str(cat)))

Solution (Python):
for _ in range(int(input())):
    (n, s, r) = map(int, input().split())
    cat = s - r
    if cat == 1:
        print(' '.join('1' * n))
        continue
    mv = (r - n + 1) // (cat - 1)
    remain = ''
    if (r - n + 1) % (cat - 1) == 0:
        ones = n - 1 - mv
    else:
        remain = str((r - n + 1) % (cat - 1) + 1)
        ones = n - 1 - mv - 1
    print(cat, ' '.join(str(cat) * mv + '1' * ones + remain))

Solution (Python):
def ndices(n, s, r):
    l = s - r
    d = r // (n - 1)
    v = r % (n - 1)
    dices = [str(d)] * (n - 1 - v) + [str(d + 1)] * v + [str(l)]
    print(' '.join(dices))
t = int(input())
c_t = 0
while c_t < t:
    (n, s, r) = [int(j) for j in input().split(' ')]
    ndices(n, s, r)
    c_t += 1