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

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

AtCoder ABC 355 A - Who Ate the Cake? (7Q, 灰色, 100 点)

ちょっと算数チックな問題

問題概要

人 1, 2, 3 が容疑者に挙げられている。次の証言がある。

  • 「人  A は犯人ではない」
  • 「人  B は犯人ではない」

犯人を特定できるかどうかを判定し、特定できるならば犯人を答えよ。

制約

  •  A, B は 1, 2, 3 のいずれか

解法

 A, B が等しいか、異なるかで、場合分けして考えよう。

  •  A B が同じとき:容疑者は残り 2 人になるが、どちらが犯人かは分からないので特定できない
  •  A B が異なるとき:容疑者は残り 1 人になるので、特定できる

なお、後者の場合、 1 + 2 + 3 から  A + B を引いて求めるのが楽。

コード

#include <bits/stdc++.h>
using namespace std;

int main() {
    int A, B;
    cin >> A >> B;
    if (A == B) cout << -1 << endl;
    else cout << 6 - (A + B) << endl;
}

コード