题目连接:该题是luogu试炼场的2-4:T2
题目大意:
1 给出各人的成绩和获奖信息,求出各自的奖金;
2 排序输出最高的奖学金;
3 奖金相同的,输出编号最早的;
解题思路:
1 主要是掌握二分排序的进阶:双关键排序:成绩相同的时候,输入较早(编号较小)的排在前面。
上代码:
//luogu1051:谁拿了最多奖学金
//双关键字排序模板:分数相同的时候,序号小的先输出
//1 在快排的基础上,加上多一重比较
//2 分数相同的情况,比较序号
#include<cstdio>
int n,su=0;
struct nod{char na[50];int s,o;nod(){s=0;}}e[110];
void px(int l,int r)
{
int x=l,y=r,m=e[(l+r)/2].s,m2=e[(l+r)/2].o;
while(x<=y)
{
while(e[x].s>m||(e[x].s==m&&e[x].o<m2)) x++;//双关键字的精髓
while(e[y].s<m||(e[y].s=