全部博文(118)
分类: C/C++
2008-05-30 17:43:40
有n名选手入围了百度之星程序设计大赛的复赛阶段。为了让选手相互之间有更多的了解和更好的交流,组委会工作人员邀请每位选手选择一些不同的词语来介绍自己的性格。每名选手需要为自己选定的每一个词语指定一个绝对值不超过100的整数权值q,表示这个词语在多大程度上描述了自己的性格。例如“美丽 90”表示该选手认为自己非常美丽,“冷淡 -60”表示比较热情,而“外向 -5”表示稍微有一点点偏内向。你不需要考虑词语本身的语义,例如尽管“外向 -5”和“内向 5”在语义上等价,但你的程序应把它们看作不相关。
组委会发现不少选手的性格都有相似之处,所以希望找到一组词语尽量准确的描述所有的选手。对于选出的词语集合S,定义选手i被描述的精确程度P(i)为S中所有词语在选手i眼中的权值之和(选手i没有提到的词权值视为0),组委会希望让最小的P(i)尽量大,因为这样才能让选出的词语能够描述所有选手,而不仅仅是部分。
另外,所选词语的个数也是有讲究的。词语太少会略显单薄,而词语太多又不方便宣传,所以组委会设定了词语个数的最小值min和最大值max。
输入数据
输入数据第一行为三个非负整数n, min和max,表示选手的个数、词语数的最小值和最大值,接下来的n行,每行包括若干“词语-权值”对(用空格隔开)。词语保证由不超过10个汉字组成(用GBK编码,不含非汉字),权值为绝对值不超过100的整数。
输出数据
仅一行,输出各个词语,用空格隔开。词语总数必须不小于min且不大于max,每个词语都必须至少被一个选手提到过,否则视为非法输出。你的输出不必是最优的,只要输出合法,就能得到一定的分数。
输入样例
3 2 4
美丽 90 冷淡 -60 外向 -5 乐观 20
美丽 10 冷淡 20
外向 20 乐观 -5
输出样例
美丽 冷淡 外向
样例解释
如果把选手按照输入中出现的顺序编号为1~3,则P(1)=90-60-5=25,P(2)=10+20=30,P(3)=20,所有P中的最小值为20。
注意事项
输入数据的中文采用。
GBK:是又一个汉字编码标准,全称《汉字内码扩展规范》。采用双字节表示,总体编码范围为 8140-FEFE,首字节在 81-FE 之间,尾字节在 40-FE 之间,排除xx7F。总计 23940 个码位,共收入 21886 个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号 883 个。
评分规则