#P1547. Clay Bully
Clay Bully
题目翻译(带注释)
题目描述
Terry女士是一位幼儿园美术老师,喜欢让学生用黏土创作。她的一项任务是让学生将黏土捏成方块并测量其尺寸。然而,每节课总有一个孩子会从另一个孩子那里拿走一些黏土。由于Terry女士给每个孩子的初始黏土量相同,你可以编写一个程序,在她测量完每个孩子的成品方块后,帮助找出欺负者和受害者。
输入格式
输入包含一个或多个班级的数据,最后以仅包含-1的行结束。每个班级数据开始于一个整数n(班级学生数),接下来是n行学生信息。每行学生信息包含三个正整数(表示黏土方块的长、宽、高)和学生名字(长度不超过8字符)。每个班级学生数不少于2且不超过9人,Terry女士给每个学生的初始黏土量最多为250立方单位。每个班级恰好有一个欺负者和一个受害者。
输出格式
对每个班级,输出一行,格式严格遵循样例输出。
输入数据1
3
10 10 2 Jill
5 3 10 Will
5 5 10 Bill
4
2 4 10 Cam
4 3 7 Sam
8 11 1 Graham
6 2 7 Pam
-1
输出数据1
Bill took clay from Will.
Graham took clay from Cam.
来源
Mid-Central USA 2003
关键概念注释
- 体积计算:方块体积 = 长×宽×高,记为( V = l \times w \times h )
- 初始黏土量:同一班级所有学生的初始黏土量相同,且( V_{\text{初始}} \leq 250 )
- 欺负者与受害者:
- 欺负者:成品体积 > 初始量(拿走了他人黏土)
- 受害者:成品体积 < 初始量(黏土被拿走)
解题要点提示
-
核心逻辑:
- 计算每个学生的方块体积
- 找出唯一的初始体积(所有学生体积的中间值,因恰好一人增多、一人减少)
- 确定体积大于初始值的为欺负者,小于初始值的为受害者
-
关键步骤:
- 读取输入并计算各学生体积
- 统计体积出现次数,确定初始体积(出现次数为n-2的体积值)
- 按格式输出结果
示例解析(以班级1为例)
- 学生体积:Jill(200)、Will(150)、Bill(250)
- 初始体积应为200?150?250?
- 假设初始为200:Bill(250>200)是欺负者,Will(150<200)是受害者,符合题意
- 其他假设不满足“恰好一人增多、一人减少”
- 输出: