time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Taisia has n� six-sided dice. Each face of the die is marked with a number from 11 to 66, each number from 11 to 66 is used once.
Taisia rolls all n� dice at the same time and gets a sequence of values a1,a2,…,an�1,�2,…,�� (1≤ai≤61≤��≤6), where ai�� 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 ai�� and calculates the sum of the values on the remaining n−1�−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≤t≤10001≤�≤1000) — the number of testcases.
Each testcase is given on a separate line and contains three integers n�, s�, r� (2≤n≤502≤�≤50, 1≤r
It is guaranteed that a solution exists.
Output
For each testcase, print: n� integers a1,a2,…,an�1,�2,…,�� in any order. It is guaranteed that such sequence exists.
If there are multiple solutions, print any.
Example
input
Copy
7
2 2 1
2 4 2
4 9 5
5 17 11
3 15 10
4 4 3
5 20 15
output
Copy
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
解题说明:此题是一道数学题,有 n个色子,它们朝上的面的点数之和为 s,去掉其中一个色子后的和为 r,问原来所有色子的点数。其中有一个棋子为 s − r,则题目转换为求 n − 1个不大于 6的数且和为 r。
#include
#include
int main()
{
int t;
scanf("%d", &t);
for (int i = 0; i < t; i++)
{
int n, s, r;
scanf("%d%d%d", &n, &s, &r);
printf("%d ", s - r);
for (int j = 1; j < n; j++)
{
printf("%d ", (r / (n - j)));
r = r - (r / (n - j));
}
printf("\n");
}
return 0;
}