解题思路:
结构体封装数据便于排名,sort函数排名;
上代码:
#include<iostream>
#include<algorithm>
using namespace std;
int n, m;
struct stu
{
int number, score;
}ans[5005];
bool cmp(stu a, stu b)
{
if (a.score == b.score) return a.number < b.number;
return a.score > b.score;
}
int main()
{
cin >> n >> m;
m *= 1.5;
int i, o;
for (i = 0; i < n; ++i) cin >> ans[i].number >> ans[i].score;
sort(ans, ans + n, cmp);
while(1) {
if (ans[m-1].score == ans[m].score) ++m;
else break;
}
cout << ans[m-1].score << " " << m << endl;
for (i = 0; i < m; ++i) cout << ans[i].number << " " << ans[i].score << endl;
return 0;
}