https://codeforces.com/contest/2004/problem/B

思维问题

题意:n个room和n-1个door,给定两个区间,有俩人在这两区间的任意房间中。问锁多少个door,可以保证两人不会见面。

思路:如果两个区间没有重叠,则锁一个门即可。如果有重叠,首先要把重叠的区间中门全锁住,然后判断两个区间左右端点是否重叠,如果不重叠还要锁靠内的区间端点的门。

void solve(){
	int a, b, c, d;
	cin >> a >> b >> c >> d;

	if (b < c || d < a) {
		cout << 1 << '\n';
	}
	else {
		cout << (min(b, d) - max(a, c) + (a != c) + (b != d)) << '\n';
	}
}
posted @ 2024-08-19 10:00  _Yxc  阅读(12)  评论(0编辑  收藏  举报