これは結構難しい。いろんな解法がある。
問題概要
個の整数 が与えられる。
これらのうち 2 個の値が等しく、残りの 1 個の値がそれらと異なるならば "Yes" を出力せよ。そうでなければ "No" を出力せよ。
解法
ABC-A の前提知識ではないが、集合型 (set
型) を用いるのが簡単だと思われる。
問題の条件は、「3 個の整数の中に、値は 2 種類ある」と言い換えられる。
よって、 を集合型変数に格納して、そのサイズが 2 であるかどうかを判定すればよい。
#include <bits/stdc++.h> using namespace std; int main() { int A, B, C; cin >> A >> B >> C; set<int> S({A, B, C}); if (S.size() == 2) cout << "Yes" << endl; else cout << "No" << endl; }