题目描述
1917年创立的福布斯杂志,在编制各种排行榜方面有86年历史,1982年首次推出富豪榜在全球产生空前影响,现在,一年一度的福布斯全球亿万富翁榜在全世界受到密切关注。福布斯每年编制一百多个有关人物、公司和生活时尚排行榜,在全球范围内,福布斯富豪榜的江湖地位毋庸置疑。他云集了世界各地的富豪们。
输入
有多组测试数据,少于10。 每组数据两个数N (0 < N < = 10^6)和K ( 0< K <= 10 ,K < N ),表示有N位候选人,要从中选出排名前K的富豪,然后是N位候选人的名字和财产(亿元)。 (名字是由不超过60个字母组成的字符串 ,任意两个人的财产都不一样)
输出
输出排名前K的富豪的名字和财产,按财产从大到小排序(每两组数据之间有一行空格隔开)。
样例输入
5 3 fdsa 100.5 aaaa 132 jkoret 421.1 koerwrew 543 jirjge 432.4 4 2 Fda 441.6 Fdsja 123 afds 345.11 Haffe 894样例输出
koerwrew 543 jirjge 432.4 jkoret 421.1 Haffe 894 Fda 441.6#include<iostream> #include<malloc.h> #include<cstdio> using namespace std; #define M 1000000 struct people { double rich; char name[100]; }stu[M],temp; int main() { int m,n; int i,j; int num=0; while(scanf("%d%d",&m,&n)!=EOF) { if(num!=0) { cout<<endl; } for(i=0;i<m;i++) { scanf("%s %lf",stu[i].name,&stu[i].rich); } for(i=0;i<n;i++) { for(j=i+1;j<m;j++) { if(stu[i].rich<stu[j].rich) { temp=stu[j]; stu[j]=stu[i]; stu[i]=temp; } } } for(i=0;i<n;i++) { printf("%s %g\n",stu[i].name,stu[i].rich); } } return 0; }