题解 | #过山车#

过山车

https://ac.nowcoder.com/acm/problem/22237

思路:审题要清晰

先排除特殊情况:

(1)如果 k == 0,即过山车上一个人也没有,由于牛牛必须坐在前面有人或者后面有人的空位置,此时过山车上没有符合牛牛要求的位置,故最少和最多符合他要求的位置都为 0 ;

(2)如果 k == n,即过山车已经坐满,此时已经没有位置了,故最少和最多符合他要求的位置都为 0;

再看一般情况:由于牛牛必须坐在前面有人或者后面有人的空位置,故最少符合他要求的位置为 1 ,主要考虑最多符合他要求的位置,我们可以三个位置分为一组,比如 n = 6,k = 2,最多的情况为 010 010,此时牛牛有 4 个位置可以选择;再比如 n = 8, k = 2,最多的情况为 010 010 00,此时牛牛有 4 个位置可以选择;再比如 n = 4,k = 2,最多的情况为 010 1,此时牛牛有 2 个位置可以选择;由此,当 n >= k3 时,maxn = 2k;否则,maxn = n-k;

#include<iostream>
using namespace std;
int main(){
    long long n,k,min=0,max=0;
    cin>>n>>k;
    if(n==k||k==0);
    else{
        min=1;
        if(n>=3*k){
            max=k*2;
        }
        else{
            max=n-k;
        }
    }
    cout<<min<<" "<<max<<endl;
    return 0;
}
全部评论
为什么答案是错误啊,不能理解,通过率只有60%
点赞 回复 分享
发布于 2022-04-12 23:49

相关推荐

03-09 20:32
运营
牛客972656413号:成绩管理系统会不会有点太。。。
点赞 评论 收藏
分享
如题,这操作。。。。
真烦好烦真烦:既想享受国家的招聘应届生福利,又不想培养新人,我只能说这种企业的ld太过分了
投递美的集团等公司10个岗位 >
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务