#P3063. Sherlock Holmes

Sherlock Holmes

本题没有可用的提交语言。

题目描述

著名侦探夏洛克·福尔摩斯需要解决一个棘手的难题。他有nn个盒子B1,B2,,BnB_1, B_2, \dots, B_nnn为偶数),每个盒子包含mm个球,球分为白色和黑色。设Bi=(Wi,Bi)B_i = (W_i, B_i)表示一个盒子,其中WiW_i为白球数量,BiB_i为黑球数量。他需要将这些盒子分成两组,每组包含n/2n/2个盒子,使得在两组中,要么白球占多数,要么黑球占多数。如果存在这样的多数,设m1m_1m2m_2分别为两组中多数球的百分比。福尔摩斯需要快速找出min(m1,m2)\min(m_1, m_2)的最大可能值。你能帮助福尔摩斯吗?

输入格式

输入包含多个测试用例。每个数据集代表一组盒子。数据集以盒子数量nnn<10000n < 10000)开始,接着是每个盒子的球数mmm<10000m < 10000),然后是每个盒子的白球和黑球数量(均小于10000)。输入数据正确,并以文件结束符终止。

输出格式

对于每个数据集,程序从行首开始输出结果。如果存在多数球,程序输出多数球的颜色(W或B)及其最大值;否则输出"No solution"(不含引号)。输入输出示例如下表所示。示例中有一个数据集,包含4个盒子,每个盒子有30个球。例如,第一个盒子有17个白球和13个黑球。唯一可能的分组方式是(B1,B4)(B_1, B_4)(B2,B3)(B_2, B_3),其中白球占多数。因此,该数据集的输出结果为W和最大值51.67。

示例输入

4
30
17 13
12 18
20 10
14 16

示例输出

W 51.67

来源

Southeastern Europe 2006