L2-009 抢红包 (25 分)
25 L2 009 抢红包
2023-09-27 14:27:31 时间
Powered by:NEFU AB-IN
L2-009 抢红包 (25 分)
-
题意
没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。
-
思路
模拟即可
-
代码
/* * @Author: NEFU AB-IN * @Date: 2022-04-20 20:47:30 * @FilePath: \ACM\GPLT\L2-009.CPP * @LastEditTime: 2022-04-20 20:56:41 */ #include <bits/stdc++.h> using namespace std; #define int long long #define MP make_pair #define SZ(X) ((int)(X).size()) #define IOS \ ios::sync_with_stdio(false); \ cin.tie(0); \ cout.tie(0); #define DEBUG(X) cout << #X << ": " << X << endl; typedef pair<int, int> PII; const int INF = 0x3f3f3f3f; const int N = 1e4 + 10; int n; int cnt[N]; double sum[N]; struct sa { int id, cnt; double sum; }; signed main() { IOS; cin >> n; for (int i = 1; i <= n; ++i) { int k; double sum1 = 0.0; cin >> k; for (int j = 1; j <= k; ++j) { int v; double p; cin >> v >> p; cnt[v] += 1; sum[v] += p; sum1 += p; } sum[i] -= sum1; } vector<sa> v; for (int i = 1; i <= n; ++i) { v.push_back({i, cnt[i], sum[i]}); } sort(v.begin(), v.end(), [&](sa a, sa b) { if (a.sum != b.sum) return a.sum > b.sum; else if (a.cnt != b.cnt) return a.cnt > b.cnt; return a.id < b.id; }); for (auto [id, cnt_, sum_] : v) { printf("%lld %.2lf\n", id, sum_ / 100.0); } return 0; }
相关文章
- 阶段性小结2018年4月25日 22:56:56
- Spring Framework 6.0.4 & 5.3.25 发布
- 中国股市行情L2授权的有25家
- 网络I/o编程模型25 大结局 netty学习总结
- L2-001 紧急救援分数 25作者 陈越单位 浙江大学
- 25.Vue3:模板语法
- 分享25个新鲜出炉的 Photoshop 高级教程
- Java 25天基础-DAY 06-面向对象-静态应用---工具类
- L2-014 列车调度 (25 分)
- L2-013 红色警报 (25 分)
- L2-008 最长对称子串 (25 分)
- L2-3 浪漫侧影 (25 分)
- 【计蒜课 每周三题】2023-02-25 逛街
- [2018.10.25 T3] 旅程
- iOS开发基础知识--碎片25
- Linux Shell脚本面试25问
- 《React-Native系列》25、 详解Redux的connect方法