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

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

JOI 一次予選 2024 (第 1 回) B - 和の判定 (8Q, 難易度 1)

上手に場合分けしよう!

問題概要

3 個の整数  A, B, C が与えられる。

これらのうちの 1 個が、残りの 2 個の和として表せるときは 1 を出力し、そうでないときは 0 を出力せよ。

解法

「3 個の整数  A, B, C のうちの 1 個」が残りの 2 個の和として表せる条件を考えましょう。

その「1 個」が  A である場合と、 B である場合と、 C である場合に分けて考えます。

  •  A である場合:
    • 残りの 2 個の和は  B + C なので、1 になる条件は  A = B + C と表せます
  •  B である場合:
    • 残りの 2 個の和は  C + A なので、1 になる条件は  B = C + A と表せます
  •  C である場合:
    • 残りの 2 個の和は  A + B なので、1 になる条件は  C = A + B と表せます

これらより、求める条件は


 A = B + C または  B = C + A または  C = A + B


と表せます。この条件を満たすならば 1 を出力し、満たさないならば 0 を出力しましょう。

コード

#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) {
        cout << 1 << endl;
    } else {
        cout << 0 << endl;
    }
}