B - Integer Preference Editorial by Mitsubachi


$A > C$ の場合は $A,B$ と $C,D$ を入れ替えることで $A \leq C$ とすることができます。
この「入れ替える」という操作は C++ なら swap などで実現できます。

このとき、 $C \leq B$ であれば、 Yes 、そうでなければ No であることを示します。

  • $C \leq B$ の場合
    • $A \leq C \leq B$ であるので、 $C$ はすぬけ君と高橋君のどちらも好きな整数です。よって答えは Yes です。
  • $C \leq B$ でない場合
    • $C>B$ です。
      よって、 $C$ 以上 $D$ 以下のどの数も $B$ より大きいので、答えは No です。

    よって、後はこれをコードにするとよいです。判定には if文 を使うことができます。
    また、 $A>C$ の場合にも同様に考えることで、 $\max(A,C) \leq \min(B,D)$ であれば Yes 、そうでなければ No と分かります。

    実装例(C++)

    #include <bits/stdc++.h>
    using namespace std;
    
    int main(){
      long long a,b,c,d;
      cin>>a>>b>>c>>d;
    
      if(a>c){
        swap(a,c);
        swap(b,d);
      }
    
      if(c<=b){
        cout<<"Yes"<<endl;
      }
      else{
        cout<<"No"<<endl;
      }
    }
    

    実装例(Python)

    a,b,c,d=map(int,input().split())
    
    if a>c:
      a,c,b,d=c,a,d,b
    
    if c<=b:
      print("Yes")
    else:
      print("No")
    

    posted:
    last update: