#P6169. [IOI2016] molecules
[IOI2016] molecules
题目描述
彼得在一家公司工作,这家公司已经制造了一台检测分子的机器。每个分子的重量都是正整数。这台机器的检测范围是 ,这里 和 都是正整数。这台机器能够检测一个分子集合当且仅当这个集合包含了一个子集,这个子集的分子的重量属于机器的检测范围。
考虑 个分子,重量记为 。如果存在一个下标的集合(并且该集合中的下标都不相同) 使得 ,那么检测就会成功。
由于机器的细节, 和 之间的差距要保证会大于等于最重分子和最轻分子之间的差距,即 ,其中 ,
你的任务是写一个程序,该程序能找到一个子集,使得该子集的总重量属于检测范围,或者判定没有这样的子集存在。
样例一
4 15 17
6 8 8 7
这个例子当中,我们有四个分子,重量分别是 和 。这台机器可以检测子集总重量在 到 之间(包含 和 )的子集。注意,。分子 和分子 的重量之和为 , 所以应该输出
2
1 3
其他可能正确的答案有
2
1 2
()
和
2
2 3
()。
样例二
4 14 15
5 5 6 6
这个例子当中,我们有四个分子,重量分别为 和 ,我们要寻找一个子集,其总重量介于 和 之间(包含 和 )。请注意,。因为不存在总重量介于 和 之间的子集,所以输出 0
。
输入格式
-
第一行:整数 和 。
-
第二行: 个整数:。
输出格式
如果有满足条件的子集:
-
第一行,输出该子集大小 。
-
第二行, 个整数,符合要求的子集中的分子的下标。
如果没有,输出 0
。
1 10 12
9
0
2 5 10
4 2
2
0 1
提示
对于 的数据,,,。