题目描述
1917年创立的福布斯杂志,在编制各种排行榜方面有97年历史,1982年首次推出富豪榜在全球产生空前影响,现在,一年一度的福布斯全球亿万富翁榜在全世界受到密切关注。福布斯每年编制一百多个有关人物、公司和生活时尚排行榜,在全球范围内,福布斯富豪榜的江湖地位毋庸置疑。他云集了世界各地的富豪们。
输入格式
从键盘输入两个整数n (1 <= n < = 100)和k ( 1<= k <= n ),表示有n位候选人,要从中选出排名前k位的富豪,然后是n位候选人的名字和财产(亿元)。 (名字是由不超过20个不含空格的字母组成的字符串 ,任意两个人的财产都不一样)。
输出格式
要求输出排名前K的富豪的名字和财产,按财产从大到小排序(每位富豪的数据占一行,其中姓名和财产之间用一个空格分隔),财产保留2位小数。
样例输入
20 4
Mnzzjs 321.12
Jjykaj 19.08
Zmrvug 83.88
Gspogqoj 35.27
Whqaqvn 152.91
Pwozu 164.91
Gpcvcb 273.73
Tuaqepu 90.69
Ohkpg 86.56
Yjpja 298.38
Wonuxbt 178.96
Hgkluswj 37.70
Zfasnxk 46.27
Lfisss 182.60
Yhuicnep 292.79
Zdawm 176.73
Yfeaf 13.18
Motrl 20.33
Sptqoakb 99.45
Psodta 201.26
样例输出
Mnzzjs 321.12
Yjpja 298.38
Yhuicnep 292.79
Gpcvcb 273.73
AC代码
#include<bits/stdc++.h>
using namespace std;
struct no{
string s;
double q;
}a[100001];
bool cmp(no x,no y){
if(x.q!=y.q){
return x.q>y.q;
}
return x.s>y.s;
}
int main(){
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>a[i].s>>a[i].q;
}
sort(a,a+n,cmp);
for(int i=0;i<m;i++){
cout<<a[i].s<<" "<<a[i].q<<endl;
}
return 0;
}