题目链接
结构体存储每一个人的收入,id和收到的红包数,根据题目要求排序完后输出。
#include <bits/stdc++.h>
using namespace std;
struct Money{
int m;
int des;
int get;
};
Money money[10010];
void init(int n){
for(int i = 1;i <= n;i++){
money[i].des = i;
money[i].get = 0;
}
}
int cmp(const Money& a,const Money& b){
if(a.m != b.m){
return a.m > b.m;
}
else if(a.get != b.get){
return a.get > b.get;
}
return a.des < b.des;
}
int main(){
int n;
cin>>n;
init(n);
for(int i = 1;i <= n;i++){
int t;
cin>>t;
for(int j = 0;j < t;j++){
int des,put;
cin>>des>>put;
money[i].m -= put;
money[des].m += put;
money[des].get += 1;
}
}
sort(money+1,money+n+1,cmp);
for(int i = 1;i <= n;i++){
float temp = float(money[i].m) / 100;
printf("%d %0.2f\n",money[i].des,temp);
}
return 0;
}