首页 / 题库

P13057 - 1.1.2 Greedy Gift Givers 贪婪的礼物送礼者

算法入门
通过次数0 提交次数0 内存限制 128MB 时间限制1秒

描述

一群朋友准备互送礼物,你需要确定每个人收到的钱比送出的钱多多少(即净收益)。
每个人都会准备一些钱来送礼物,这些钱会被平均分给所有他指定的接收者。如果钱无法平均分配,剩余的零钱(不够平分给所有人的部分)由送礼者自己保留。

已知:
- 每个人的名字互不相同,且长度不超过 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`。
- 所有金额均为整数。

意见反馈

    最多上传3张图片,格式为JPG、PNG、JPEG,单张不超过5MB

    注册

    发送验证码

    密码必须包含数字、字母和特殊字符

    找回密码

    发送验证码

    密码必须包含数字、字母和特殊字符

    运行 ID:67149

    • 测试点1:Accepted
    • 用时:0 ms
    • 内存:288 kb
    • 测试点2:Accepted
    • 用时:0 ms
    • 内存:288 kb
    输入
    203
    输出
    203

    test

    测评信息

    错误.in文件下载

    错误.out文件下载

    运行 ID:67149

    2019-01-24 15:06:36