https://atcoder.jp/contests/abl/tasks/abl_b
解説
https://atcoder.jp/contests/abl/submissions/17050220
[A,B]と[C,D]の区間のANDを取ったときに、残る区間があるかという問題。
区間のANDを取りたい場面は結構あって、以下の手法が役に立つ。
[A,B]と[C,D]の区間のAND -> [max(A,C),min(B,D)]
ANDを取ったときに区間が残らない場合は、[4,2]みたいな変な感じになるので、ANDを取った[L,R]に対して、
L≦Rであるかを確認すれば区間が残るかが分かる。
ll A, B, C, D; //--------------------------------------------------------------------------------------------------- void _main() { cin >> A >> B >> C >> D; ll L = max(A, C); ll R = min(B, D); if (L <= R) cout << "Yes" << endl; else cout << "No" << endl; }