Problem5989--学习委员候选人

5989: 学习委员候选人

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

班里选学习委员,学习委员的学习不能太差,要求语文数学两科的成绩一定排名在班内前 $50\%$。同时还有一个权重,这个权重就是两科排名的乘积,权重越低排名越高。
学生的数量为偶数,给出 $n$ 个学生的名字以及语文数学成绩,排除掉单科成绩处于后 $50\%$ 的人,对剩余的人按照权重从低到高输出候选人名单。如果没有任何满足条件的学生,则输出 none。如果 $2$ 人权重相同,则按照输入的顺序,先输入的先输出。
注:学生姓名可能会有重复。

Input

第 $1$ 行:一个数 $n\ (8 \leq n \leq 50,000)$,表示学生的数量。
第 $2 \sim n+1$ 行:先是学生姓名,后面 $2$ 个数用空格分隔,第 $i+1$ 行代表第 $i$ 个学生语文的综合成绩 $a_i$ 和数学的综合成绩 $b_i$。$0 \leq a_i,\ b_i \leq 1,000$

Output

按照要求的排序,逐个输出学生的姓名。

Sample 1 Input

8
aa 1000 1000
bb 800 900
cc 200 1000
dd 1000 200
ee 800 800
ff 700 900
gg 900 900
hh 600 600

Sample 1 Output

aa
gg
bb
按照样例数据给出的成绩,语文成绩需要达到 $800$,数学成绩需要达到 $900$,才能进入排序名单。因此仅剩下:
aa 1000(排名 1) 1000(排名 1) 权重: 1 * 1 = 1
bb 800(排名 4)   900(排名 3)  权重: 3 * 4 = 12
gg 900(排名 3)   900(排名 3)  权重: 3 * 3 = 9
再按照权重从小到大排名,输出的姓名为:
aa
gg
bb

Sample 2 Input

8
aa 1000 200
bb 800 100
cc 200 1000
dd 1000 200
ee 300 800
ff 700 900
gg 900 300
hh 600 600

Sample 2 Output

none

HINT

题目来源:51Nod 3200

Source/Category

基础算法 4.7.排序