简单的结构体排序,代码如下
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <map>
#include <cmath>
#include <queue>
#include <cmath>
#include <ctype.h>
#define ll long long
using namespace std ;
typedef struct{
int id ;
int grade ;
}meassage ;
bool cmp( meassage a , meassage b ){
if ( a.grade == b.grade ){
return a.id < b.id ;
}
return a.grade > b.grade ;
}
int main(){
meassage mea[5005] ;
int n , m ;
cin >> n >> m ;
for ( int i = 0 ; i < n ; i ++ ){
cin >> mea[i].id >> mea[i].grade ;
}
sort(mea , mea + n , cmp) ;
int grade_line = mea[int(floor(m * 1.5) - 1)].grade ;
int tot = 0 ;
for ( int i = 0 ; i < n ; i ++ ){
if ( mea[i].grade >= grade_line ){
tot ++ ;
}
}
cout << grade_line << " " << tot << endl ;
for ( int i = 0 ; i < n ; i ++ ){
if ( mea[i].grade >= grade_line ){
cout << mea[i].id << " " << mea[i].grade << endl ;
}
}
return 0 ;
}