有没有人可以帮我看一下这样写为啥有两个数据过不了啊谢谢啦
查看原帖
有没有人可以帮我看一下这样写为啥有两个数据过不了啊谢谢啦
1265031
CJQ_cjq楼主2024/3/13 21:02
#include<iostream>
#include<vector>
#include<map>
#include<algorithm>
using namespace std;
bool cmp(pair<int, int>& a, pair<int, int>& b)
{
	return a.second > b.second;
}
bool mycmp(pair<int, int>& a, pair<int, int>& b)//用pair表示选手的报名号和成绩
{
	if (a.second == b.second)return a.first < b.first;
	return a.second > b.second;
}
int main()
{
	int n, k,j;
	cin >> n >> k;
	k = (int)(k * 1.5);
	if (k > n)k = n;
	vector<pair<int, int>>a(n);
	for (int i = 0; i < n; i++)
	{
		cin >> a[i].first >> a[i].second;
	}
	sort(a.begin(), a.end(), cmp);
	if (k < n)
	{
		for (j = k - 1; a[j].second == a[k].second; j++);
	}
	else j = n;
	cout << a[k-1].second << ' ' << j<<endl;
	sort(a.begin(), a.begin() + j, mycmp);
	for (int i = 0; i < j; i++)
	{
		cout << a[i].first << ' ' << a[i].second << endl;
	}
}
2024/3/13 21:02
加载中...