官方题解|纪念品商店
2025-02-04 22:04:45
发布于:北京
55阅读
0回复
0点赞
题目解析
我们可以实现一个函数 int clamp(v, lo, hi)
。
这个函数会返回 区间内,距离 最近的点。
那么显然,如果 在 内,函数返回 ;若不在区间内,则有两种情况:
- ,此时显然返回 ;
- ,此时显然返回 ;
有了这个函数我们就可以判断 内离 最近的点和 的距离是否小于等于 ,从而得出答案。
- 在
C++17
此函数已加入标准库,定义在头文件<algorithm>
中。
AC代码
#include <bits/stdc++.h>
int clamp(int v, int lo, int hi) {
return v < lo ? lo : v > hi ? hi : v;
}
int main() {
std::cin.tie(nullptr)->sync_with_stdio(false);
int a, b, c, d;
std::cin >> a >> b >> c >> d;
int x = std::abs(clamp(c, a, b) - c);
std::cout << (x <= d ? "Yes" : "No") << '\n';
return 0;
}
全部评论 1
#include <bits/stdc++.h>
int clamp(int v, int lo, int hi) {
return v < lo ? lo : v > hi ? hi : v;
}int main() {
stdcin.tie(nullptr)->sync_with_stdio(false);
int a, b, c, d;
stdcin >> a >> b >> c >> d;
int x = stdabs(clamp(c, a, b) - c);
stdcout << (x <= d ? "Yes" : "No") << '\n';
return 0;
}2025-03-26 来自 浙江
0
有帮助,赞一个