社区讨论
求调
P1068[NOIP 2009 普及组] 分数线划定参与者 3已保存回复 18
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 18 条
- 当前快照
- 1 份
- 快照标识符
- @lo1psupl
- 此快照首次捕获于
- 2023/10/23 01:00 2 年前
- 此快照最后确认于
- 2023/11/03 01:40 2 年前
CPP
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m;
int ms;
int r;//入选人数
struct fun{
int k;//报名号
int s;//考试成绩
}a[5010];
int cmp(fun n,fun m){
if(n.s==m.s){
//如果成绩一样,就判断编号大小
//小者在前,大者在后
return n.k>m.k;
}
//从大到小排序
return n.s>m.s;
}
signed main(){
ios::sync_with_stdio(false);
cin>>n>>m;
ms=floor(m*1.50);//向下取整
for(int i=1;i<=n;++i){
cin>>a[i].k>>a[i].s;
}
sort(a+1,a+n+1,cmp);//排序
cout<<a[ms].s<<" ";//先输出面试分数线
r=ms;
while(a[r].s==a[r+1].s&&r<=n){
//从被定为分数线的那个人开始
//往下搜索是否还有与分数线并列的人
r++;
}
cout<<r<<endl;//输出被录取人数
for(int i=1;i<=r;++i){
//在输出被录取人的编号和成绩
cout<<a[i].k<<" "<<a[i].s<<endl;
}
return 0;
}
求调QAQ
回复
共 18 条回复,欢迎继续交流。
正在加载回复...