题解 | 小红的区间构造

小红的区间构造

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

// 活动地址: 牛客春招刷题训练营 - 编程打卡活动
#include<iostream>
#include<algorithm>
#include<cmath>
#include<vector>
#define int long long 

using namespace std;



//   这题刚开始 看了一下他们的 题解 感觉写的好复杂  看不懂有点 
//   就自己 按自己的想法写了 
void solve(){
    int  n,k,x; // 找一个长度为k的区间 满足 有n 个数是x的倍数
    cin>>n>>k>>x; 
    int mil=(n-1)*x+1;
    int mal=(n+1)*x-1;
    /// 先判断 长度 合不合理 
    if(k<mil||k>mal){
        cout<<"-1";
        return ;
    }
    //  接着求出初始的左右端点  
    // 然后慢慢移动 左右端点
    int left=x,right=n*x;
    k=k-right+left-1;
    while(k){
        if(k)
        {
            left--;
            k--;
        }
        if(k){
            right++;
            k--;
        }
    }
    cout<<left<<" "<<right<<"\n";

}

signed main(){
    int T=1;
    ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
   // cin>>T;
    while(T--){
        solve();
    }
    return 0;
}
// 活动地址: 牛客春招刷题训练营 - 编程打卡活动

全部评论

相关推荐

SadnessAlex:跟三十五岁原则一样,人太多给这些***惯坏了
点赞 评论 收藏
分享
05-09 14:45
门头沟学院 Java
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务