题意:世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A 市对
所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根
据计划录取人数的150%划定,即如果计划录取m名志愿者,则面试分数线为排名第m*150%
(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有
选手。
现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成
绩。
AC代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m,k[10000],s[10000],c,flag;
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>k[i]>>s[i];
for(int i=2;i<=n;i++)
for(int j=2;j<=n;j++)
{
if(s[j]>s[j-1])
{
c=s[j];
s[j]=s[j-1];
s[j-1]=c;
c=k[j];
k[j]=k[j-1];
k[j-1]=c;
}
}
for(int i=2;i<=n;i++)
for(int j=2;j<=n;j++)
{
if(s[j]==s[j-1] && k[j]<k[j-1])
{
c=k[j];
k[j]=k[j-1];
k[j-1]=c;
}
}
m=m*1.5;
flag=s[m];
c=0;
for(int i=1;i<=n;i++)
{
if(s[i]>=flag)
c++;
}
cout<<flag<<" "<<c<<endl;
for(int i=1;i<=c;i++)
{
cout<<k[i]<<" "<<s[i]<<endl;
}
return 0;
}