整体来说就是结构体的sort 最后主义的就是排名的问题,我自己写的老只能过一个测试点,然后看了看dalaode,就是用数组储存rank,也是一个很新奇的想法,我的想法就是两个变量实现
#include <bits/stdc++.h>
using namespace std;
struct node {
string a;
int b;
}ss[10005];
bool cmp(node a,node b){
if(a.b!=b.b)return a.b>b.b;
else return a.a<b.a;
}
int main(){
int n,g,k,ans=0;
cin>>n>>g>>k;
for(int i=0;i<n;i++){
cin>>ss[i].a>>ss[i].b;
if(ss[i].b>=g)ans+=50;
else if(ss[i].b>=60&&ss[i].b<g)ans+=20;
}
sort(ss,ss+n,cmp);
int rank[10005];
rank[0]=1;
for(int i=1;i<n;i++){
if(ss[i].b==ss[i-1].b)rank[i]=rank[i-1];
else
rank[i]=i+1;
}
cout<<ans<<endl;
for(int i=0;i<n&&rank[i]<=k;i++){
cout<<rank[i]<<' '<<ss[i].a<<' '<<ss[i].b<<endl;
}
return 0;
}