7-2 抢红包(25 分)

没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。

输入格式:

输入第一行给出一个正整数N(≤10​4​​),即参与发红包和抢红包的总人数,则这些人从1到N编号。随后N行,第i行给出编号为i的人发红包的记录,格式如下:

KN​1​​P​1​​⋯N​K​​P​K​​

其中K(0≤K≤20)是发出去的红包个数,N​i​​是抢到红包的人的编号,P​i​​(>0)是其抢到的红包金额(以分为单位)。注意:对于同一个人发出的红包,每人最多只能抢1次,不能重复抢。

输出格式:

按照收入金额从高到低的递减顺序输出每个人的编号和收入金额(以元为单位,输出小数点后2位)。每个人的信息占一行,两数字间有1个空格。如果收入金额有并列,则按抢到红包的个数递减输出;如果还有并列,则按个人编号递增输出。

输入样例:

10
3 2 22 10 58 8 125
5 1 345 3 211 5 233 7 13 8 101
1 7 8800
2 1 1000 2 1000
2 4 250 10 320
6 5 11 9 22 8 33 7 44 10 55 4 2
1 3 8800
2 1 23 2 123
1 8 250
4 2 121 4 516 7 112 9 10

输出样例:

1 11.63
2 3.63
8 3.63
3 2.11
7 1.69
6 -1.67
9 -2.18
10 -3.26
5 -3.26
4 -12.32
#include<stdio.h>
#include<malloc.h>
typedef struct People {int id;//编号int count;//红包个数int sum;//金额
}People;
void Init(People *node,int N)
{int i;for (i = 0; i < N; i++){(node + i)->id = i + 1;(node + i)->count = (node + i)->sum = 0;}
}
void sort(People *node, int N)
{int i, j, k;People snap;for (i = 0; i < N; i++){for (j = 1; j < N-i; j++){if ((node + j)->sum > (node + j - 1)->sum){snap = *(node + j);*(node + j) = *(node + j - 1);*(node + j - 1) = snap;j--;continue;}if ((node + j)->sum == (node + j - 1)->sum && (node + j)->count > (node + j - 1)->count){snap = *(node + j);*(node + j) = *(node + j - 1);*(node + j - 1) = snap;j--;continue;}if ((node + j)->sum == (node + j - 1)->sum && (node + j)->count == (node + j - 1)->count &&(node + j)->id < (node + j)->id){snap = *(node + j);*(node + j) = *(node + j - 1);*(node + j - 1) = snap;j--;}}}for (i = 0; i < N; i++)printf("%d %.2f\n", (node + i)->id,(double)(node + i)->sum / 100.0);
}
int main(void)
{int i, j, num;int N, money, id;scanf("%d", &N);N;People *node;node = (People*)malloc(sizeof(People) * N);if (!node)return -1;Init(node, N);for (i = 0; i < N; i++){scanf("%d", &num);for (j = 0; j < num; j++){scanf("%d %d", &id, &money);(node + i)->sum -= money;(node + id - 1)->count++;(node + id - 1)->sum += money;}}sort(node, N);
}

7-2 抢红包(25 分)相关推荐

  1. 【CCCC】L2-009 抢红包 (25分),,间接排序,比较double大小

    problem L2-009 抢红包 (25分) 没有人没抢过红包吧-- 这里给出N个人之间互相发红包.抢红包的记录,请你统计一下他们抢红包的收获. 输入格式: 输入第一行给出一个正整数N(≤10 ​ ...

  2. L2-009 抢红包 (25 分)(C语言)(排序)

    题目 L2-009 抢红包 (25 分) 没有人没抢过红包吧-- 这里给出N个人之间互相发红包.抢红包的记录,请你统计一下他们抢红包的收获. 输入格式: 输入第一行给出一个正整数N(≤10 4 ),即 ...

  3. 7-4 抢红包 (25分)

    7-4 抢红包 (25分) 没有人没抢过红包吧-- 这里给出N个人之间互相发红包.抢红包的记录,请你统计一下他们抢红包的收获. 输入格式: 输入第一行给出一个正整数N(≤10​4​​),即参与发红包和 ...

  4. C语言 7-7 抢红包 (25分)

    7-7 抢红包 (25分 题目 代码块 题目 没有人没抢过红包吧-- 这里给出N个人之间互相发红包.抢红包的记录,请你统计一下他们抢红包的收获. 输入格式: 输入第一行给出一个正整数N(≤10​4), ...

  5. PTA题目:7-9 抢红包 (25分)

    没有人没抢过红包吧-- 这里给出N个人之间互相发红包.抢红包的记录,请你统计一下他们抢红包的收获. 输入格式: 输入第一行给出一个正整数N(≤10​4​​),即参与发红包和抢红包的总人数,则这些人从1 ...

  6. L2-009 抢红包 (25 分) 经典结构体操作+排序问题

    没有人没抢过红包吧-- 这里给出N个人之间互相发红包.抢红包的记录,请你统计一下他们抢红包的收获. 输入格式: 输入第一行给出一个正整数N(≤10 4 ),即参与发红包和抢红包的总人数,则这些人从1到 ...

  7. 7-7 抢红包 (25 分)

    没有人没抢过红包吧-- 这里给出N个人之间互相发红包.抢红包的记录,请你统计一下他们抢红包的收获. 输入格式: 输入第一行给出一个正整数N(≤104),即参与发红包和抢红包的总人数,则这些人从1到N编 ...

  8. L2-009 抢红包 (25分)

    有人没抢过红包吧-- 这里给出N个人之间互相发红包.抢红包的记录,请你统计一下他们抢红包的收获. 输入格式: 输入第一行给出一个正整数N(≤10​4​​ ),即参与发红包和抢红包的总人数,则这些人从1 ...

  9. 7-9 抢红包 (25 分)

    sort()函数 文件头#include<algorithm> 结构体排序格式:sort(结构体,结构体+结构体数目,cmp)[如果无cmp,默认是升序.] cmp函数书写举例 bool ...

  10. L2-009 抢红包 (25 分)

    L2-009 抢红包 (25 分) 没有人没抢过红包吧-- 这里给出N个人之间互相发红包.抢红包的记录,请你统计一下他们抢红包的收获. 输入格式: 输入第一行给出一个正整数N(≤10​410​^410 ...

最新文章

  1. XSSFORK:新一代XSS自动扫描测试工具(精)
  2. POJ 1852 Ants O(n)
  3. 中石油训练赛 - 小说(最短路+二分)
  4. SAP云平台架构概述
  5. python中遍历字典判断是否存在_python中如何判断值在不在字典中
  6. 第三场阴影场与属性访问器接口
  7. two+few+arguments+php,PHP5.5 ~ PHP7.2 新特性整理
  8. 微拍堂推出“正义联盟计划” 助力文玩行业高质量发展
  9. C 语言结构体引用,引用 C 语言结构体学习
  10. netty权威指南第三版_Hadoop权威指南(第二版及第三版)
  11. 左移和右移的运算规则_一文读懂JavaScript位的与、或、异或、取反及左移右移操作...
  12. 20、C++ Primer 4th 笔记,重载运算符(1)
  13. centos7静默搭建oracle11g,centos7下静默安装oracle11G图解配置 1
  14. c语言写马达驱动程序,如何用单片机驱动马达
  15. 新GRE词汇按部就班的学习方法
  16. [词根词缀]nomin/norm/not/nounce/nov及词源N的故事
  17. Drupal主题开发
  18. 更新了pandas后,ix方法不能使用的替代办法
  19. unity游戏开发毕设_毕设分享:用Unity探究2D游戏的打击感
  20. C盘清理的五大技巧,瞬间多出30G

热门文章

  1. 全球及中国汽车用环氧树脂封装材料行业研究及十四五规划分析报告
  2. 方法论是大脑中内置的一级(元)算法,是人的核心思考结构和方式,是心智模型...
  3. 收入时间序列——之数学理解篇
  4. matlab 画折线信号及其对应的偶信号和奇信号
  5. kendoui固定宽度_中文版kendoUI API — Grid(一)
  6. java后台识别二维码的方法
  7. TCGA 概述及 Barcode 详解
  8. 开启不同厂商电视的adb调试
  9. 阿里云网盘公测_阿里云网盘不限速,公测预约来了!现在参与将获得比非预约用户更大的网盘存储空间...
  10. 降价到29万!!特斯拉的屠杀开始了