题目链接:https://www.patest.cn/contests/gplt/L2-009
题意:中文题意不翻译了。
题解:模拟一下发红包的过程,用结构体存数据,然后结构题排个序,就ok了
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int N = 10005; struct node{ int id; double value; int cnt ; }people[N]; bool cmp(node a,node b){ if(a.value == b.value) return a.cnt > b.cnt; return a.value > b.value; } int main(){ int n; cin >> n; for(int i = 1 ; i <= n ; i ++) people[i].id = i,people[i].cnt = 0,people[i].value = 0; for(int k = 1; k <= n ; k ++){ int m; cin >> m; for(int i = 1 ; i <= m ; i++){ int a,b; cin >> a >> b; people[a].value += b; people[k].value -= b; people[a].cnt++; } } sort(people+1,people+n+1,cmp); for(int i = 1 ;i <= n ; i ++){ printf("%d %.2lf\n",people[i].id,people[i].value/100); } }