求助,为什么10分
查看原帖
求助,为什么10分
1037145
_Eternal_楼主2024/8/26 21:36
#include<bits/stdc++.h>
#define int long long
using namespace std;
struct E{
	int name;
	int grades;
}a[5007];
bool cmp1(E x,E y){
	return x.grades>y.grades;
}
bool cmp2(E x,E y){
	return x.name<y.name;
}
bool cmp3(E x,E y){
	return x.grades<y.grades;
}
int ans;
int sum;
signed main(){
	int n,m;
	cin>>n>>m;
	int k=floor(m*1.5),t;
	for(int i=1;i<=n;i++){
		cin>>a[i].name>>a[i].grades;
	}
	sort(a+1,a+1+n,cmp3);
	t=a[k-1].grades;
	sort(a+1,a+1+n,cmp1);
	for(int i=1;i<=n;i++){
		if(a[i].grades>=t){
			sum++;
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(a[i].grades==a[j].grades)ans++;
		}
		break;
	}
	
	cout<<t<<" "<<sum<<'\n';
	if(ans==n){
		sort(a+1,a+n+1,cmp2);
		for(int i=1;i<=n;i++){
			if(a[i].grades>=t){
				cout<<a[i].name<<" "<<a[i].grades<<'\n';
			}
		}
		return 0;
	}
	for(int i=1;i<=n;i++){
		if(a[i].grades>=t){
			if(a[i].grades==a[i+1].grades && a[i].name>a[i+1].name){
				swap(a[i].name,a[i+1].name);
			}
			cout<<a[i].name<<" "<<a[i].grades<<'\n';
		}
	}
	return 0;
}

有神犇能帮帮我这个蒟蒻吗?谢谢!

2024/8/26 21:36
加载中...