問題概要
問題ページ
-
A - Poor
問題ページへ移動する
問題文
\(3\) つ組の数について、ある \(2\) つが等しく、残りの \(1\) つがそれらと異なるとき、その \(3\) つ組を「かわいそう」であるといいます。
\(3\) つの整数 \(A, B, C\) が与えられるので、この \(3\) つ組がかわいそうであれば Yes
を、そうでなければ No
を出力してください。
制約
- \(A, B, C\) はいずれも \(1\) 以上 \(9\) 以下の整数
問題の考察
条件に一致する全ての\(A, B, C\)のパターンを考えるのがシンプルで分かりやすい。
条件を満たすパターン
- \(A=B\neq C\)(AとBが等しくCだけ異なる)
- \(A\neq B=C\)(BとCが等しくAだけ異なる)
- \(A\neq C=B\)(AとCが等しくBだけ異なる)
\(A, B, C\)をカウントして要素の個数が\((1,2)\)の場合には条件を満たすという考え方もあるが、条件を満たすパターンは\(3\)つしかないのでif文で条件分岐してあげた方がシンプルで分かりやすい。
これらの条件を満たしているかpythonでは演算子を使って次のように記述できる。
pythonでの記述
- \((A=B\neq C) \Rightarrow(A=B!=C)\)
- \((A\neq B=C )\Rightarrow(A!=B=C)\)
- \((A\neq C=B) \Rightarrow(A!=C=B)\)
たびすけ
抽出する条件のパターンが少ない場合にはif文で条件分岐した方がコーディングが楽なこともあるよ!
ACコード
import sys
def solve():
readline = sys.stdin.buffer.readline
mod = 10 ** 9 + 7
a, b, c = list(map(int, readline().split()))
if a == b != c or a != b == c or a == c != b:
print("Yes")
else:
print("No")
if __name__ == '__main__':
solve()