1 条题解

  • 0
    @ 2025-5-4 12:08:36

    题意分析

    1. 问题背景:山姆和埃拉经营餐饮服务,在圆桌上给客人上肉丸,山姆顺时针从主人(座位(1))开始上菜,埃拉逆时针从主人配偶(座位(N))开始上菜,最终要使他们同时结束且最后上菜的客人相邻,并且将圆桌客人分成两部分,两部分肉丸数相等。
    2. 输入信息:输入包含多个测试用例,每个测试用例的第一部分是一个整数(N)((2 \leq N \leq 30)),表示圆桌上客人的数量;第二部分是(N)个整数,依次表示从(1)号客人到(N)号客人点的肉丸数,每个客人点的肉丸数在(1)到(9)之间。输入以一行只有一个(0)作为结束标志。
    3. 输出要求:对于每个测试用例,如果能够找到满足条件的划分(即山姆和埃拉同时结束且最后上菜客人相邻,且两部分肉丸数相等),则输出山姆和埃拉结束上菜时的座位号;如果无法找到这样的划分,则输出 “No equal partitioning.” 。

    解题思路

    1. 计算总肉丸数:首先,读取每个测试用例中客人点的肉丸数,并计算出圆桌上所有肉丸的总数。如果总数是奇数,那么肯定无法将肉丸分成数量相等的两部分,直接输出 “No equal partitioning.” 。
    2. 枚举划分位置:因为山姆和埃拉最后上菜的客人要相邻,所以可以枚举他们最后上菜客人的相邻位置组合(例如山姆在位置(i),埃拉在位置(i + 1) 或者山姆在位置(N),埃拉在位置(1) 等情况)。
    3. 计算两部分肉丸数:对于每一种可能的相邻位置组合,分别计算山姆负责部分和埃拉负责部分的肉丸数量。山姆从位置(1)开始顺时针计算,埃拉从位置(N)开始逆时针计算,直到各自到达对应的位置。
    4. 判断是否满足条件:比较计算得到的两部分肉丸数是否相等。如果相等,则找到了满足条件的划分,输出山姆和埃拉结束上菜的位置;如果遍历完所有可能的相邻位置组合都没有找到满足条件的划分,则输出 “No equal partitioning.” 。
    • 1

    信息

    ID
    248
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者