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

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

AtCoder ABC 109 A - ABC33 (灰色, 100 点)

パリティの問題。ここのところ、算数や数学の問題が続いている。

問題概要

1 以上 3 以下の整数  A, B が与えられる。

  •  A \times B \times C が奇数

となるような 1 以上 3 以下の整数  C が存在するかどうかを判定せよ。

解法

一般に、かけ算をするとき

  • 偶数が 1 個でも含まれていたら:積は偶数
  • すべて奇数だったら:積は奇数

ということが成り立つ (中学数学や数学 IA で学ぶ)。よって、

  •  A または  B が偶数のとき: C がなんであっても積は偶数になるので、"No"
  •  A B も奇数のとき: C を奇数にすれば積が奇数になるので、"Yes"

と整理できる。

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

int main() {
    int A, B;
    cin >> A >> B;
    if (A * B % 2 == 1) cout << "Yes" << endl;
    else cout << "No" << endl;
}