尝试使用vector,但是错了,求助
查看原帖
尝试使用vector,但是错了,求助
920234
froth_reciprocal楼主2023/8/23 20:54

首先谢谢点进来有回答我的问题的念头并且不会嘲笑蒟蒻问这么简单问题的大佬们

回归正题

8080分错了两个测试点(#2#3),求调

#include<algorithm>
#include<vector>
#include<iostream>
#include<cmath>
using namespace std;
struct re {
	int k,s;
};
bool cmp(re x,re y) {
	if(x.s==y.s)return x.k<=y.k;
	else return x.s>=y.s;
}
int n,m;
int main() {
	ios::sync_with_stdio(0);
	cin>>n>>m;
	vector <re> v1;
	for(int i=1; i<=n; i++) {
		int x,y;
		cin>>x>>y;
		v1.push_back((re) {x,y});
	}
	int xian=floor(m*1.5);//向下取整
	sort(v1.begin(),v1.end(),cmp);//逆序排列
	int fen=v1[xian].s;//分数排名线
	int sum=0;
	for(int i=0; i<n; i++)
		if(v1[i].s>=fen)sum++;//求和
	cout<<fen<<" "<<sum<<endl;//分数和一共多少合格的人
	for(int i=0; i<n; i++)
		if(v1[i].s>=fen)
			cout<<v1[i].k<<" "<<v1[i].s<<endl;//输出这几个合格的人
	return 0;
}

谢谢各位

2023/8/23 20:54
加载中...