自己是刚入门的,打的代码不太懂为什么wa了两个点,求大家帮忙看一下,谢谢谢谢
查看原帖
自己是刚入门的,打的代码不太懂为什么wa了两个点,求大家帮忙看一下,谢谢谢谢
1247021
I_linhaiqi楼主2024/3/14 17:48
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<math.h>
using namespace std;
struct stu{
	int num;
	int score;	
}student[5001];
bool cmp(stu a, stu b){
	if(a.score>b.score)return 1;
 else if(a.score==b.score){
 	if(a.num<b.num){return 1;}
 	else return 0;
 	 }	
	else return 0;
}
int main(void){
	int n,m;cin>>n>>m;
	int sum=floor(m*1.5);
	for(int i=0;i<n;i++){
		cin>>student[i].num>>student[i].score;
	}
	sort(student,student+n,cmp);
    int renshu=0;
	int fenshuxian=student[sum-1].score;
	for(int i=0;i<n;i++){
	if(student[i].score>=student[sum-1].score){renshu++;}
	else break;	
	}
	cout<<fenshuxian<<" "<<renshu<<endl;
	for(int i=0;student[i].score>=student[sum].score;i++){
	cout<<student[i].num<<" "<<student[i].score<<"\n";
	}
	return 0;
}
2024/3/14 17:48
加载中...