网易资格赛2 第2题

描述 有道为每位员工提供每工作日享受中午与晚上两顿餐费报销,每顿饭额度上限为X元。为了能够用这些钱吃得更丰盛,大家纷纷组成了各种饭团,每天中午和晚上扫荡清华科技园附近各大中小饭馆。
为了使报销过程更加方便,在每个饭团吃完饭的时候,由一个人付帐拿发票,这个人在发票上写上所有饭团成员的姓名,并且拿发票回去报销。如果平均每人的消费超过了额度上限,大家会将超出部分平均补给付帐的同事。
比如,某天中午A B C D E五人到某餐厅吃饭,消费5X + 5元,由A付款,B C D E每人补给A同事1元钱,A同事拿发票可报销得5X元。若消费5X – 5 元,则其他同事无需补钱,A同事拿发票直接报销得到5X – 5元。
由于目前公司的人越来越多,行政MM每天处理这些发票事务非常的繁琐,现在需要你来写一个程序,拿着所有的发票信息,统计一下需要分别给每个人报销多少钱。 输入 输入第一行有一个正整数T,表示下面有T个数据。
对于每个数据,其格式如下
第一行是一个正整数X,表示每个人一顿饭的额度上限,
第二行是一个正整数S,表示饭团报销的发票总数量,
接下来S行分别是每张发票的细节:
对于每一行 输入格式为
n m u1 u2 u3….un ux
n是一个正整数,表示该张发票的饭团人数,m也是一个正整数,表示消费金额总数。
u1..un分别是该饭团的名单,ux为付款人的姓名,ux一定是u1..un中间的一员。
数据中可能会包含一周甚至更长时间的数据,所以,由于每个人在不同时间会参与不同的饭团,所以有些人的名字会出现在好几行内,这是正常现象。

其中0<T<=10, 0<X<=100, 0<S<=10000, 0<n<=10, 0<m<=1000,所有员工的姓名都由大写字母组成,不为空且长度不超过10。 输出 每个数据按照员工姓名字典序,输出分别应该给每个人报销多少钱,如果某人的报销钱数为0,则不需要输出。
请在每组数据结束之后输出一个空行。 样例输入
2
20
4
3 61 A B C B
2 39 A B A
4 88 A B C D C
3 40 B C D B
15
4
3 61 A B C B
2 39 A B A
4 88 A B C D C
3 40 B C D B
样例输出
A 39
B 100
C 80

A 30
B 85
C 60
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值