世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才, AA 市对
所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根
据计划录取人数的 150\%150% 划定,即如果计划录取 mm 名志愿者,则面试分数线为排名第 m \times 150\%m×150%
(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有
选手。
现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成
绩。
输入描述(Input description)1
6 3
1000 90
3239 88
2390 95
7231 84
1005 95
1001 88
输出描述(Output description)1
88 5
1005 95
2390 95
1000 90
1001 88
3239 88
结构体+排序即可
Code:
#include<iostream>
#include<algorithm>
using namespace std;
struct information{
int id,grade;
};
information a[10000000];
bool cmp(information x,information y){
if(x.grade!=y.grade) return x.grade>y.grade;
else return x.id<y.id;
}
int main(){
int n,m,i;
cin>>n>>m;
for(i=1;i<=n;i++)
cin>>a[i].id>>a[i].grade;
sort(a+1,a+1+n,cmp);
m=m*1.5;
int line,ans=0;
line=a[m].grade;
for(i=1;a[i].grade>=line;i++)
ans++;
cout<<line<<' '<<ans<<endl;
for(i=1;i<=ans;i++)
cout<<a[i].id<<' '<<a[i].grade<<endl;
return 0;
}