构造mex
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

~~~~~~小歪有一个整数 s ,他想将 s 分解成 n 个非负整数,使得这 n 个整数构成的数组 \{a_1,a_2,\dots,a_n\} 满足:
~~~~~~~~~\bullet\a_1+a_2+\dots+a_n 恰好为 s
~~~~~~~~~\bullet\\rm mex \{a\} 恰好为 k

~~~~~~非负整数数组的 \operatorname{mex} 定义为没有出现在数组中的最小非负整数。例如 \operatorname{mex} \{1,2,3 \} =0\operatorname{mex} \{0,2,2,5\} =1

输入描述:

~~~~~~每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\le T\le 10000\right) 代表数据组数,每组测试数据描述如下:

~~~~~~在一行上输入三个整数 s,n,k \left(1\le s \le 10^9;\ 1\le n \le 10^6;\ 0 \le k \le 10^9 \right) ,含义与题干保持一致。

~~~~~~除此之外,保证所有的 n 之和不超过 10^6

输出描述:

~~~~~~如果存在一种分解方案,在第一行上输出 \rm YES ,随后,在第二行上输出 n 个整数代表分解出的非负整数;否则,直接输出 \rm NO

~~~~~~如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
示例1

输入

复制
3
6 3 3
7 4 3
6 6 0

输出

复制
NO
YES
4 0 1 2
YES
1 1 1 1 1 1