题解 | #年会抢玩偶游戏#

年会抢玩偶游戏

https://www.nowcoder.com/practice/cfb7734a7c844350895f2e269a38195d

#include <iostream>
using namespace std;

int main() {
    int n, m, k;
    cin >> n >> m >> k;
    if(k <= 0 || n <= 0 || k > n){//排除掉的边界值
        cout << 0;
    }
    else if(n == 1){
        cout << m;
    }
    else{
        int left = k - 1;
        int right = n - k;//左右的坐标,默认到中间依次拿本身的数
        cout << min(left, right) + 1;
    }
    return 0;
}

第一步永远是除去边界值,随后判断特殊情况就是两边没人的时候。最后这个判断有点难,我看别人的题解勉强看懂了一点,就是默认从两边到所在的K处,每移动一个人都+1,初始值就是边界上都是1,往后两边依次+1,由条件限制,不能多超过两个及以上,所以就算左右到边界最小的值,以此为两边的最大值,然后根据题意这个最大值+1即为最后的结果

全部评论

相关推荐

2024-12-26 20:46
复旦大学 C++
国棉17厂丶小王:拿了offer的那个周末晚上去网吧通宵,去网吧不知道玩什么刷了lc的每日一题,然后试着第一次打开了三角洲行动,从此少了一个已经刷了700道题的lc用户,但是烽火地带多了一只🐭🐭
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务