整理するのが大変な問題
問題概要
3 つの相異なる整数 がある(値は与えられない)。
これらの 3 つの整数の大小関係を表す 3 つの文字 が与えられる。たとえば が '<' であるとき、 であることを表す。 が '>' であるとき、 であることを表す。
3 つの整数 のうち、メディアンがどれであるかを特定せよ。
考えたこと
公式解説はとてもシンプルですごい。
ここでは力技で場合分けして解くことにした。
- のとき
- のとき:メディアンは
- そうでないとき:メディアンは のうちの大きい方、つまり
- のとき:メディアンは
- のとき:メディアンは
- のとき
- のとき:メディアンは
- そうでないとき:メディアンは のうちの小さい方、つまり
- のとき:メディアンは
- のとき:メディアンは
コード
#include <bits/stdc++.h> using namespace std; int main() { char ab, ac, bc; cin >> ab >> ac >> bc; if (ab == '<') { if (bc == '<') cout << 'B' << endl; else cout << (ac == '<' ? 'C' : 'A') << endl; } else { if (bc == '>') cout << 'B' << endl; else cout << (ac == '>' ? 'C' : 'A') << endl; } }