描述
一群朋友准备互送礼物,你需要确定每个人收到的钱比送出的钱多多少(即净收益)。
每个人都会准备一些钱来送礼物,这些钱会被平均分给所有他指定的接收者。如果钱无法平均分配,剩余的零钱(不够平分给所有人的部分)由送礼者自己保留。
已知:
- 每个人的名字互不相同,且长度不超过 14 个字符。
- 每个人会列出自己要送礼的对象名单。
- 所有金额均为整数。
你需要计算每个人的净收益(收到的钱减去送出的钱),并按照输入时名字的顺序输出。
输入
第一行:一个整数 `NP`(`2 ≤ NP ≤ 10`),表示人数。
接下来 `NP` 行:每行一个名字,表示组里的所有人。
接下来是 `NP` 个段落,每个段落描述一个人的送礼情况,顺序与名字输入顺序**不一定相同**,但每个段落的第一行是一个名字(表示送礼者)。
每个段落的格式如下:
- 第一行:送礼者的名字(一定在之前输入的名字列表中)。
- 第二行:两个整数 `money` 和 `num`,`money` 表示这个人准备用来送礼的总金额(`0 ≤ money ≤ 2000`),`num` 表示他将送礼的对象人数(`0 ≤ num ≤ NP-1`)。
- 如果 `num > 0`,接下来有 `num` 行,每行一个名字,表示接收者的名字(都在名字列表中)。
- 如果 `num = 0`,则没有后续行,直接进入下一个段落。
所有数据确保格式正确,不会出现接收者名字不在列表中的情况。
输出
输出 `NP` 行,每行包含一个名字和一个整数,中间用一个空格隔开。
名字顺序必须与输入时第 2 行到第 `NP+1` 行的顺序**完全一致**。
整数表示该人的净收益(收到的钱 − 送出的钱)。
样例
- 复制
- 复制
提示
### 样例说明
- `dave` 有 200 元,分给 3 个人(laura, owen, vick),每人得 200/3 = 66 元,余 2 元自己保留。送出 198 元,收到 500(来自 owen) + 0 = 500 元,净收益 = 500 - 198 = 302。
- `laura` 有 0 元,分给 2 人(amr, vick),每人得 0 元,送出 0 元,收到 66(来自 dave) = 66 元,净收益 = 66。
- `owen` 有 500 元,分给 1 人(dave),送出 500 元,收到 66(来自 dave) + 75(来自 amr) = 141 元,净收益 = 141 - 500 = -359。
- `vick` 有 0 元,分给 0 人,送出 0 元,收到 66(来自 dave) + 75(来自 amr) + 0(来自 laura) = 141 元,净收益 = 141。
- `amr` 有 150 元,分给 2 人(vick, owen),每人得 75 元,送出 150 元,收到 0(来自 laura) = 0 元,净收益 = -150。
## 数据范围与约定
- `NP`:2 到 10。
- 名字长度:不超过 14 个字符。
- 金额:`0 ≤ money ≤ 2000`。
- 接收者人数:`0 ≤ num ≤ NP-1`。
- 所有金额均为整数。

关注我们