模序列
题目描述
给定四个整数 n,x,y,S。
长度为 n 的非负整数序列 a 称为一个“模序列”,当且仅当:
- a1=x;
- 对每个 2≤i≤n,ai 等于 ai−1+y 或 ai−1mody。
这里 umody 表示 u 除以 y 的余数。
请判断是否存在元素和恰好为 S 的模序列。若存在,输出任意一个满足条件的序列。
输入格式
第一行包含一个整数 t,表示测试用例数。
接下来 t 行,每行包含四个整数 n,x,y,S,描述一个测试用例。
输出格式
对于每个测试用例,若无解,输出一行 No。
若有解,先输出一行 Yes,再输出一行 n 个整数 a1,a2,…,an,表示任意一个合法序列。
Yes 和 No 的大小写任意。不同测试用例的答案依次输出,不得添加其他内容。
样例输入 1
3
5 8 3 28
3 5 3 6
9 1 5 79
样例输出 1
YES
8 11 2 2 5
NO
NO
样例解释
第一个测试用例中,序列 [8,11,2,2,5] 合法且元素和为 28。
数据范围
对所有数据:
- 1≤t≤2⋅104;
- 1≤n≤2⋅105,0≤x≤2⋅105,1≤y≤2⋅105,0≤S≤2⋅105;
- 所有测试用例的 n 之和不超过 2⋅105;
- 所有测试用例的 S 之和不超过 2⋅105。
本题采用独立测试点计分。
| 子任务编号 |
分值 |
特殊限制 |
| 1 |
20 |
t≤8,n≤18,S≤500,且单个输入文件中 ∑n≤80、∑S≤2000 |
| 2 |
40 |
t≤8,n≤60,S≤800,且单个输入文件中 ∑n≤240、∑S≤3200 |
| 3 |
无特殊限制 |