大佬帮忙看看怎么改进,80分
查看原帖
大佬帮忙看看怎么改进,80分
526386
7teen楼主2022/5/7 19:26
#include <bits/stdc++.h>
using namespace std;
struct JM{
	int id;//编号 
	int cj;//成绩 
}a[10000];

bool cmp(JM a,JM b)
{
	if(a.cj>b.cj) return 1;//按成绩从大到小 
	if(a.cj==b.cj&&a.id<b.id) return 1;//如果成绩相等就按照编号排 
	return 0;//其他的情况就返回0
}
int main()
{
	int n,m,ans=0;
	cin>>n>>m;
	for(int i=0;i<n;i++)
	{
		cin>>a[i].id>>a[i].cj;//输入编号和成绩 
	}
	m=floor(double(m*1.5));//例3*1.5=4(向下取整) 
	sort(a,a+n,cmp);//快排 
	for(int i=0;i<n;i++)
	{
		if(a[i].cj>=a[m].cj)//如果只要大于第m的成绩,计数器就加1 
		{
			ans++;
		}
	}
	cout<<a[m].cj<<" "<<ans<<endl;
	for(int i=0;i<ans;i++)
	{
		cout<<a[i].id<<" "<<a[i].cj<<endl;
	}
	
}
2022/5/7 19:26
加载中...