题解 | #年会抢玩偶游戏#
年会抢玩偶游戏
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即为最后的结果
查看21道真题和解析