L2-027 名人堂与代金券
题目:

思路:
模拟,感觉pta纯考读题。。。
AcCode:
#include<iostream>
#include<algorithm>
#include<vector>
#include<cstring>
using namespace std;
struct node{
string email;
int v;
bool operator < (const node &b) const{
if(v != b.v) return v > b.v;
else return email < b.email;
}
};
void solve(){
int N, G, K; cin >> N >> G >> K;
int p = 0;
vector<node> e(N + 1), ans;
for(int i = 1; i <= N; i++){
cin >> e[i].email >> e[i].v;
if(e[i].v >= 60 && e[i].v < G) p += 20;
else if(e[i].v >= G && e[i].v <= 100) p+= 50;
}
sort(e.begin() + 1, e.end());
cout << p << endl;
int rank = 1, i = 1;
while(rank <= K){
int rankS = e[i].v, j = i, rankT = rank;
while(j <= N && e[j].v == rankS){
cout << rank << " " << e[j].email << " " << e[j].v << endl;
rankT++;
j++, i++;
}
rank = rankT;
}
}
int main(){
solve();
return 0;
}

浙公网安备 33010602011771号