1 条题解
-
0
题意分析
- 问题背景:山姆和埃拉经营餐饮服务,在圆桌上给客人上肉丸,山姆顺时针从主人(座位(1))开始上菜,埃拉逆时针从主人配偶(座位(N))开始上菜,最终要使他们同时结束且最后上菜的客人相邻,并且将圆桌客人分成两部分,两部分肉丸数相等。
- 输入信息:输入包含多个测试用例,每个测试用例的第一部分是一个整数(N)((2 \leq N \leq 30)),表示圆桌上客人的数量;第二部分是(N)个整数,依次表示从(1)号客人到(N)号客人点的肉丸数,每个客人点的肉丸数在(1)到(9)之间。输入以一行只有一个(0)作为结束标志。
- 输出要求:对于每个测试用例,如果能够找到满足条件的划分(即山姆和埃拉同时结束且最后上菜客人相邻,且两部分肉丸数相等),则输出山姆和埃拉结束上菜时的座位号;如果无法找到这样的划分,则输出 “No equal partitioning.” 。
解题思路
- 计算总肉丸数:首先,读取每个测试用例中客人点的肉丸数,并计算出圆桌上所有肉丸的总数。如果总数是奇数,那么肯定无法将肉丸分成数量相等的两部分,直接输出 “No equal partitioning.” 。
- 枚举划分位置:因为山姆和埃拉最后上菜的客人要相邻,所以可以枚举他们最后上菜客人的相邻位置组合(例如山姆在位置(i),埃拉在位置(i + 1) 或者山姆在位置(N),埃拉在位置(1) 等情况)。
- 计算两部分肉丸数:对于每一种可能的相邻位置组合,分别计算山姆负责部分和埃拉负责部分的肉丸数量。山姆从位置(1)开始顺时针计算,埃拉从位置(N)开始逆时针计算,直到各自到达对应的位置。
- 判断是否满足条件:比较计算得到的两部分肉丸数是否相等。如果相等,则找到了满足条件的划分,输出山姆和埃拉结束上菜的位置;如果遍历完所有可能的相邻位置组合都没有找到满足条件的划分,则输出 “No equal partitioning.” 。
- 1
信息
- ID
- 248
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者