题目描述
译自 ROI Regional 2025 Day2 T3. Главное правило личных олимпиад
让我们重温一下个人奥林匹克竞赛的原则:每道题都要得分!不能在竞赛中有题目得零分。
让我们来模拟一个竞赛的比赛过程。假设比赛中有 n 道题目,第 i 道题目包含 ki 个子任务,第 i 道题目的第 j 个子任务可以获得 ci,j 分。子任务之间是独立的,因此你可以在每道题中选择任意数量的子任务来解答。不过,你不能选择空集,因为那样这道题得分就是 0 分,这违反了个人竞赛的原则。
请你判断,是否可以在遵守个人竞赛原则的前提下,恰好获得总共 s 分。
输入格式
第一行包含两个整数 n 和 s (1≤n≤100000,1≤s≤100000),分别表示比赛中的题目数量和需要得到的总分。接下来是题目的描述。每道题目的描述由两行组成。
第 i 道题目的第一行包含一个整数 ki (1≤ki≤100000),表示第 i 道题目的子任务数量。
第 i 道题目的第二行包含 ki 个整数 ci,1,ci,2,…,ci,ki (1≤ci,j≤100000),表示各个子任务的分值。
保证所有题目的 k1+k2+…+kn 不超过 100000。
保证 (k1+k2+…+kn)⋅s 的乘积不超过 107。
输出格式
如果不存在满足条件的解,输出 No
。
否则,第一行输出 Yes
。接下来,需要为每道题目输出你选择的子任务。
对于第 i 道题目,先输出一个整数 mi (1≤mi≤ki),表示你选择的子任务数量。接下来输出 mi 个不同的整数 pi,1,pi,2,…,pi,mi (1≤pi,j≤ki),表示你选择的第 i 道题目的子任务编号。
如果存在多种方法可以凑出总分 s,你可以输出任意一种。
2 4
1
2
2
3 1
No
2 4
1
2
2
2 1
Yes
1
1
1
1
数据范围与提示
详细子任务附加限制及分值如下表所示。
子任务 |
分值 |
附加限制 |
子任务依赖 |
1 |
8 |
n=1 |
|
2 |
10 |
n=2 |
3 |
6 |
k1+k2+…kn≤20 |
4 |
6 |
ki=1 |
5 |
15 |
n⋅s≤100000,s≤1000 |
3 |
6 |
55 |
无附加限制 |
1∼5 |