#812. Forbidden Integer

Forbidden Integer

No testdata at current.

Forbidden Integer

题意翻译

你需要构造一个正整数序列,满足:

  1. 对于 �i,��≤�aik 且 ��≠�ai**=**x。
  2. ∑��=�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≤�≤1001t100 ) — the number of testcases.

The only line of each testcase contains three integers �,�n,k and �x ( 1≤�≤�≤�≤1001xkn100 ).

输出格式

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

Copy

输出样例 #1

YES
6
3 1 1 1 1 3
NO
YES
2
2 2
YES
1
7
NO

Copy

说明

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.