#812. Forbidden Integer
Forbidden Integer
No testdata at current.
Forbidden Integer
题意翻译
你需要构造一个正整数序列,满足:
- 对于 �i,��≤�ai≤k 且 ��≠�ai**=**x。
- ∑��=�∑ai**=**n。
如无法构造,输出 NO
,否则输出 YES
后,输出序列长度与序列中的每一个数。
题目描述
You are given an integer �n , which you want to obtain. You have an unlimited supply of every integer from 11 to �k , except integer �x (there are no integer �x at all).
You are allowed to take an arbitrary amount of each of these integers (possibly, zero). Can you make the sum of taken integers equal to �n ?
If there are multiple answers, print any of them.
输入输出格式
输入格式
The first line contains a single integer �t ( 1≤�≤1001≤t≤100 ) — the number of testcases.
The only line of each testcase contains three integers �,�n,k and �x ( 1≤�≤�≤�≤1001≤x≤k≤n≤100 ).
输出格式
For each test case, in the first line, print "YES" or "NO" — whether you can take an arbitrary amount of each integer from 11 to �k , except integer �x , so that their sum is equal to �n .
If you can, the second line should contain a single integer �m — the total amount of taken integers. The third line should contain �m integers — each of them from 11 to �k , not equal to �x , and their sum is �n .
If there are multiple answers, print any of them.
输入输出样例
输入样例 #1
5
10 3 2
5 2 1
4 2 1
7 7 3
6 1 1
输出样例 #1
YES
6
3 1 1 1 1 3
NO
YES
2
2 2
YES
1
7
NO
说明
Another possible answer for the first testcase is [3,3,3,1][3,3,3,1] . Note that you don't have to minimize the amount of taken integers. There also exist other answers.
In the second testcase, you only have an unlimited supply of integer 22 . There is no way to get sum 55 using only them.
In the fifth testcase, there are no integers available at all, so you can't get any positive sum.