有一个坑点,卡到了80%的样例。坑点在注释中标明了
#include <iostream> #include <algorithm> using namespace std; const int maxn = 5010; struct Node { int id; int score; }node[maxn]; bool cmp(Node a, Node b) { if (a.score == b.score)return a.id < b.id; return a.score > b.score; } int main() { int n, m; cin >> n >> m; for (int i = 0; i < n; i++) { cin >> node[i].id >> node[i].score; } sort(node, node + n, cmp); int score=node[int(m*1.5)-1].score;//注意这里要-1,因为是从下标0开始的 int ans=0; for(int i=0;i<n;i++){ if(node[i].score>=score)ans++; } cout<<score<<" "<<ans<<endl; for(int i=0;i<ans;i++){ cout<<node[i].id<<" "<<node[i].score<<endl; } }