刚读题的时候没仔细就按自己的想法直接不考虑60分以下的同学其实不然测试点3是全60分以下的虽然代金卷发放为0但是如果K>0则仍然要输出排名前K位的同学如果不考虑60分以下的就出错了测试点2排名前K位中是含有60分以下的同学。
整体来说这道题在l2中算简单的一个sort就解决了问题只是输出的时候需要细心点不要因小失大粗心不考虑60分以下的同学找了10多分钟bugT_T;
#include <iostream>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
struct node{
string id;
int score;
};
bool rule(node a1,node a2){
if(a1.score==a2.score){
return a1.id<a2.id;
}else{
return a1.score>a2.score;
}
}
int main(){
int N,G,K;
cin>>N>>G>>K;
vector<node>student;
int sum=0;
while(N--){
string id;
int score;
cin>>id>>score;
if