場合分けを頑張ろう!
問題概要
3 つの整数 をいくつかのグループに分けて、各グループに含まれる整数の総和を等しくできるかを判定せよ。
考えたこと
次の 2 つの場合が考えられる。
- 2 つのグループに分けて、総和を等しくする
- 3 つのグループに分けて、総和を等しくする
前者については、さらに次の 3 つに分かれる。いずれかの条件を満たせば良い。
後者の条件は
と書ける。C++ では if (A == B && B == C)
などと書くことで判定できる。
コード
#include <bits/stdc++.h> using namespace std; int main() { int A, B, C; cin >> A >> B >> C; if (A == B + C || B == C + A || C == A + B) { // 2 グループに分ける場合 cout << "Yes" << endl; } else if (A == B && B == C) { // 3 グループに分ける場合 cout << "Yes" << endl; } else { cout << "No" << endl; } }