题解bytaotao
#include <bits/stdc++.h>
using namespace std;
struct dp//排名结构体
{
int name,sc;
};
bool fuck(dp a,dp b)
{
if(a.sc==b.sc&&a.name>b.name) return a.name>b.name;//成绩相等的情况
else return a.sc<b.sc;
}
int main()
{
int n,m;
cin>>n>>m;
dp a[n+4];
for(int i=0; i<n; i++)
{
cin>>a[i].name>>a[i].sc;
}
sort(a,a+n,fuck);//排序
int fir=floor(m*3/2);//输出个数
int cnt=0;
register int i;//把i存下来
for(i=n-1; i>=0; i--)
{
if(cnt==fir) break;
if(a[i].sc>=fir) cnt++;
}
cnt=0;//重新数个数
i+=1;
for(int j=n-1; j>=0; j--)
{
if(a[j].sc>=a[i].sc) cnt++;
}
cout<<a[i].sc<<' '<<cnt<<'\n';
for(int j=n-1; j>=0; j--)
{
if(a[j].sc>=a[i].sc) cout<<a[j].name<<' '<<a[j].sc<<'\n';
}
return 0;
}