题解
分数线划定
https://ac.nowcoder.com/acm/problem/16625
水题啊!!!
用结构体存储数据,然后排序。排完序之后要算出录取的人数。
注意:录取m*150%(向上取整)的人数以后,他的下一位可能也是这个分数。(我第一次没通过就在这)
上代码吧:
#include<bits/stdc++.h>
using namespace std;
struct student
{
int k;
int s;
}stu[5010];
bool cmp(student a,student b)
{
if(a.s==b.s)
{
return a.k<b.k;
}
return a.s>b.s;
}
int main()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>stu[i].k>>stu[i].s;
}
sort(stu+1,stu+1+n,cmp);
int number=floor(m*1.50);
int fsx=stu[number].s;
cout<<fsx<<" ";
int i=number;
while(stu[i].s==stu[i+1].s)
{
i++;
}
cout<<i<<endl;
for(int j=1;j<=i;j++)
{
cout<<stu[j].k<<" "<<stu[j].s<<endl;
}
system("pause");
return 0;
}
查看16道真题和解析