移动互联网开发的特点二十条优化措施原文
很简单的一道模拟题,使用map统计每个用户的钱数和红包数,最后在使用结构体存储,重载小于号,sort排序即可。
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
typedef long long ll;
const int N = 510;
const int mod = 998244353;
struct box{int id;int money;int cnt;bool operator<(const box &t) const{if(money == t.money && cnt == t.cnt){return id < t.id;}else if(money == t.money && cnt != t.cnt ){return cnt > t.cnt;}return money > t.money;}
};
void solve() {int n;cin>>n;map<int,int> mp;//每个人抢到的红包金额map<int,int> cnt; //红包个数for(int i = 1;i <= n ; i++){int k;cin>>k;int sum = 0;for(int j = 1 ; j <= k ; j++){int x,y;cin>>x>>y;sum += y;mp[x] += y;cnt[x]++;}mp[i] -= sum;}vector<box> a(n+1);for(int i = 1;i <= n ; i++){a[i].id = i;a[i].money = mp[i];a[i].cnt = cnt[i];}// for(auto it : mp){// cout<<it.first<<" "<<it.second<<endl;// }sort(a.begin()+1,a.end());for(int i = 1;i <= n ; i++){printf("%d %.2f\n",a[i].id,a[i].money *1.0 / 100);}
}
signed main() {// ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);int tt = 1;// cin >> tt;while (tt--) {solve();}return 0;
}