题目描述
小华是班级公认的"活动小管家"。这周末,他和小林、小辉组织了春日郊游。大家都喜欢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%的数据,无特殊限制,范围见【输入格式】