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

年会抢玩偶游戏

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即为最后的结果

全部评论

相关推荐

jack_miller:杜:你不用我那你就用我的美赞臣
点赞 评论 收藏
分享
牛客717484937号:双飞硕没实习挺要命的
点赞 评论 收藏
分享
比亚迪汽车新技术研究院 硬件工程师 总包21左右 硕士
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务