case1和case4,错误于排名,之前的排名i的上限是小于k,导致1,4样例一直过不去。
蒟蒻一枚,被自己菜哭。
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int n,g,k;
struct node{
// char zh[50];
string zh;
int idx;
int score;
}a[N];
int djj;
int cnt2,cnt5;
//bool cmp(node a,node b){
// if(a.score == b.score){
// if(strcmp(a.zh,b.zh) > 0) return false;
// else return true;
return a.zh < b.zh;
// }
// return a.score > b.score;
//}
bool cmp2(node a,node b){
if(a.score == b.score) return a.zh < b.zh;
return a.score > b.score;
// if(a.score != b.score) return a.score > b.score;
//
// return a.zh < b.zh;
}
int main(){
cin >> n >> g >> k;
for(int i = 0; i < n; i++){
cin >> a[i].zh >> a[i].score;
if(a[i].score >= g && a[i].score <= 100) cnt5++;
if(a[i].score >= 60 && a[i].score < g) cnt2++;
}
sort(a,a + n,cmp2);
djj = cnt5*50 + cnt2*20;
for(int i = 0; i < n; i++){
a[i].idx = i + 1;
}
//case1和case4,错误于排名,之前的排名i的上限是小于k,导致1,4样例一直过不去。
for(int i = 1; i < n; i++){
if(a[i - 1].score == a[i].score){
a[i].idx = a[i - 1].idx;
}
}
// cout << a[0].score << endl;
// cout <<"cnt = " << cnt << endl;
// sort(a,a + n,cmp2);
cout << djj << endl;
for(int i = 0; i < n; i++){
if(a[i].idx <= k)
cout << a[i].idx <<" " << a[i].zh <<" " << a[i].score << endl;
}
return 0;
}