社区讨论

求调

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 条回复,欢迎继续交流。

正在加载回复...