题解 | 小红的区间构造

小红的区间构造

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

#include <cstdint>
#include <iostream>
using namespace std;

int main() {
    uintmax_t n, k, x;
    cin >> n >> k >> x;
    // mx .. (m+n-1)x
    // (m-1)x+1 .. (m+n)x-1
    uintmax_t min_len = (n - 1) * x + 1;
    uintmax_t max_len = (n + 1) * x - 1;
    if (k < min_len || k > max_len) {
        cout << -1;
        return 0;
    }
    uintmax_t lower = x;
    uintmax_t diff = min(k - min_len, x - 1);
    lower -= diff;
    cout << lower << ' ' << lower + k -1;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

活泼的代码渣渣在泡池...:哈哈哈挺好的,我也上岸美团了,不说了,我又接了一单
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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