けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

AtCoder ABC 253 A - Median? (7Q, 灰色, 100 点)

条件を巧みに言い換えて整理しよう!

問題概要

3 個の整数  a, b, c が与えられる。

 b がメディアンであるかどうかを判定せよ。

解法

 b がメディアンとは、すなわち、 a, b, c を小さい順に並べたときに、 b が 2 番目に小さいということである。そのような場合は

  •  a が最も小さく、 b が 2 番目で、 c が 3 番目
  •  c が最も小さく、 b が 2 番目で、 a が 3 番目

のいずれかである (等しい場合もあるので、どちらとも言えるようなケースもある)。よって、

 a \le b \le c または  c \le b \le a

を判定すればよい。

コード

#include <bits/stdc++.h>
using namespace std;

int main() {
    int a, b, c;
    cin >> a >> b >> c;
    
    if (a <= b && b <= c)
        cout << "Yes" << endl;
    else if (c <= b && b <= a)
        cout << "Yes" << endl;
    else
        cout << "No" << endl;
}