首页 > 试题广场 >

年会抢玩偶游戏

[编程题]年会抢玩偶游戏
  • 热度指数:3441 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

某公司年会上,组织人员安排了一个小游戏来调节气氛。游戏规则如下:

N个人参与游戏,站成一排来抢工作人抛来的M个小玩偶。为了增加游戏的趣味和难度,规则规定,参与游戏的人抢到的礼物不能比左右两边的人多两个或以上,否则会受到一定的惩罚。游戏结束时拥有玩偶最多的人将获得一份大奖。
假设大家都想赢得这份大奖,请问站在第K个位置的小招在赢得游戏时,最多能拥有几个玩偶?

输入描述:
输入为用空格分隔的3个正整数,依次为:参与游戏人数N、玩偶数M、小招所在位置K


输出描述:
输出为1个正整数,代表小招最多能够拥有的玩偶数。若没有,则输出0。
示例1

输入

1 1 0

输出

0
示例2

输入

1 3 1

输出

3
模拟。第一轮只给k一个,第二轮给k和左右的人各一个,第三轮给k和左右两人各一个……直到剩余数量不足以给出下一轮。
n, m, k = [int(x) for x in input().split()]
if not 1 <= k <= n:
    print(0)
else:
    l = r = k
    ans = 0
    while m >= r - l + 1:
        m -= r - l + 1
        l = l-1 if l > 1 else l
        r = r+1 if r < n else r
        ans += 1
    print(ans)


发表于 2022-10-13 15:27:52 回复(0)