官方题解|交集
2024-08-12 00:01:41
发布于:广东
56阅读
0回复
0点赞
题目解析
本题可以使用很多方法解决,这里使用集合的思想来获取两个线段的交集:
- 令交集的左端点为 ,右端点为 。
- 那么 。
对于本题,若 则交集存在,交集的线段长度为 ,否则交集不存在,长度为 。
语法小课堂
-
使用
std::max(a, b)
可以获取a
和b
中较大的那个;反之使用std::min(a, b)
可以获取a
和b
中较小的那个。
注意:a
和b
的类型一定要严格一致,并且int
和long long
会被认为是两种完全不同的类型。 -
条件运算符:
E1 ? E2 : E3
。若E1
为true
则表达式的结果为E2
,否则为E3
。
AC代码
C++
代码:
#include <bits/stdc++.h>
int main() {
int l1, r1, l2, r2;
std::cin >> l1 >> r1 >> l2 >> r2;
int res = std::min(r1, r2) - std::max(l1, l2);
std::cout << (res > 0 ? res : 0) << '\n';
return 0;
}
Python
代码:
l1, r1, l2, r2 = map(int, input().split())
print(max(min(r1, r2) - max(l1, l2), 0))
全部评论 1
好快
2024-08-12 来自 广东
0
有帮助,赞一个