题解 | #过山车#

过山车

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

相关推荐

05-27 14:57
西北大学 golang
强大的社畜在走神:27届真不用急,可以搞点项目、竞赛再沉淀沉淀,我大二的时候还在天天打游戏呢
投递华为等公司10个岗位
点赞 评论 收藏
分享
陆续:不可思议 竟然没那就话 那就我来吧 :你是我在牛客见到的最美的女孩
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务