#AW280. Jury Compromise
Jury Compromise
题目描述
在遥远的国度 Frobnia,法庭的判决由一群普通公民组成的陪审团决定。每次审判开始时,都需要按以下方式选出一个陪审团:首先,从公众中随机抽取若干人。对于这个候选池中的每一个人,辩护方和控告方会分别给出一个 到 的评分,表示他们对这个人的偏好程度。 表示完全不喜欢, 表示认为这个人非常适合陪审团。
根据双方的评分,法官会选出陪审团。为了确保审判的公正性,陪审团对辩护方和控告方的倾向应该尽可能平衡,所以陪审团的选择必须按照双方都满意的方式。具体地,给定一个包含 个候选人的候选池,以及每个候选人 的两个值 (辩护方的评分)和 (控告方的评分),你需要从中选出 人组成陪审团。如果 是 的一个包含 个元素的子集,那么 和 分别表示这个陪审团对于辩护方和控告方而言的总评分。
对于最优的陪审团 , 的值必须最小。如果有多个陪审团的 相同,则应选择 最大的那个,因为陪审团必须尽可能对双方都理想。
你需要编写一个程序,实现这个陪审团选择过程,并在给定候选人的情况下选出最优陪审团。
输入格式
输入包含多组测试数据。
每一组测试数据的第一行为两个整数 和 (),含义见题目描述。
接下来 行,每行包含两个整数 和 ,表示控告方和辩护方对第 个候选人的评分。相邻两组测试数据之间以一个空行分隔。输入以 的一轮结束。
输出格式
对于每组测试数据,第一行输出选择陪审团的轮次(即测试数据编号,如 Jury #1、Jury #2 等)。
接下来一行,输出陪审团的 和 值(具体格式详见样例输出),下一行按升序输出选中的 个候选人的编号,并且你需要在每个编号前输出一个空格。同时,你需要在每组测试数据后输出一个空行。
输入输出样例 #1
输入 #1
4 2
1 2
2 3
4 1
6 2
0 0
输出 #1
Jury #1
Best jury has value 6 for prosecution and value 4 for defence:
2 3
说明/提示
对于 的数据,$1\le n\le 200,1\le m\le 20,m\le n,0\le d_i,p_i\le 20$。