问题 6422 --账单(bill)

6422: 账单(bill)

题目描述

小华是班级公认的"活动小管家"。这周末,他和小林、小辉组织了春日郊游。大家都喜欢AA 制(平均分摊),但每次结账时分开支付非常不方便。因此他们决定每次由每个人先行垫付所有费用,然后在微信群里分享总金额,等回到学校后再一起结算。 幸运的是,他们总是三人同行,因此保证不会有两个⼈单独分摊账单的情况。 回校的地铁上,三个小伙伴累得东倒西歪,谁都没力气算账了,你能帮帮他们吗? 形式化地说,给定3个浮点数数组a, b, c,分别表示小华、小林和小辉支付的账单列表。对于任意两个不同的人 A 和B,输出A 需要转账给B 的金额,使得最终每个人都平均分摊了所有账单。 你不需要最小化所有转账金额的总和。换句话说,允许存在无意义的转账。

输入

输入包含多组测试数据。 第一行一个整数t(1≤t≤100)表示测试用例数量。每个测试用例包含: 1. 第一行三个整数n,m,p(0≤n,m,p≤10^3) 2. 第二行n 个正浮点数ai(0≤ai≤10^3),表示小华支付的账单。 3. 第二行m 个正浮点数bi(0≤bi≤10^3),表示小林支付的账单。 4. 第二行p 个正浮点数ci(0≤ci≤10^3),表示小辉支付的账单。 保证所有的浮点数的小数位不超过2位。

输出

定义A→B 为A 需要转账给B 的金额。 对于每个测试用例,输出一行6个浮点数,分别表示: 小华→小林,小华→小辉,小林→小华,小林→小辉,小辉→小华,小辉→小林。 注意转账金额不能为负数。 该题有特殊评测机制,只要转账后每两个人之间的支付差额绝对值不超过$10^{−2}$,你的答案就会被接受。

样例输入输出

输入#1 复制
2
7 2 1
90.11 15 318 25.67 7.71 57.55 40.96
10 81
33.9
1 1 1
100
100
100
输出#1 复制
0.00 0.00 154.67 0.00 173.70 19.03
0.00 0.00 0.00 0.00 0.00 0.00

提示

【样例解释】 对于第一个样例测试用例,支付总金额为679.9元,最优转账方案是小林给小华135.63元和小辉给小华=192.73元。但由于题目不要求最小化转账总额,因此样例给出的方案也是可接受的。 对于第二个样例测试用例,所有人已完全均摊账单,故不存在任何欠款关系。 【数据范围约定】 对于30%的数据,$\sum a_i = \sum b_i = \sum c_i$ 对于另外30%的数据,存在两人的支付总额相同 对于100%的数据,无特殊限制,范围见【输入格式】
序号 标题 作者 发表时间 费用 订购数 操作