题解
分数线划定
1 条题解
-
0
#include <bits/stdc++.h> using namespace std; #define N 5005 struct Stu { int k, s;//k:报名号 s:成绩 }; bool cmp(Stu &a, Stu &b) { if(a.s == b.s)//如果分数相同 return a.k < b.k;//报名号小的在前面 else//如果分数不同 return a.s > b.s;//成绩高的在前面 } int main() { Stu stu[N]; int n, m, line, ct = 0;//line:分数线 ct:人数 cin >> n >> m; for(int i = 1; i <= n; ++i) cin >> stu[i].k >> stu[i].s; sort(stu+1, stu+1+n, cmp);//根据cmp指定的规则进行排序 line = stu[int(m*1.5)].s;//确定分数线 for(int i = 1; i <= n; ++i) { if(stu[i].s >= line) ct++; } cout << line << ' ' << ct << endl; for(int i = 1; i <= ct; ++i)//输出前ct个人的信息 cout << stu[i].k << ' ' << stu[i].s << endl; return 0; }
- 1