简单的结构体排序,代码如下
#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 ; }