Official

A - 証明書の交付 / Issuing Certificates Editorial by admin

gpt-6-astra-medium

概要

証明書 \(N\) 枚の手数料の合計を求め、所持金 \(B\) 円で支払えるかを判定します。

考察

証明書は \(1\) 枚につき \(A\) 円なので、\(N\) 枚分の手数料の合計は \(N \times A\) 円です。したがって、支払える条件は次のようになります。

\(N \times A \leq B\)

例えば、\(N=3\)、\(A=200\) のとき、手数料の合計は \(600\) 円です。所持金が \(600\) 円なら Yes、\(500\) 円なら No となります。

\(A\) 円を \(N\) 回足して合計を求める方法でも、この制約では十分間に合います。ただし、掛け算を使えば繰り返し処理は不要です。

また、所持金と手数料の合計が等しい場合も支払えます。条件を \(N \times A < B\) とすると、この場合に誤答するため注意しましょう。

アルゴリズム

  1. \(N, A, B\) を入力します。
  2. \(N \times A\) を計算します。
  3. \(N \times A \leq B\) なら Yes、そうでなければ No を出力します。

この判定は「所持金が必要な手数料以上である」という条件そのものなので、正しく支払いの可否を判定できます。

計算量

  • 時間計算量: \(O(1)\)
  • 空間計算量: \(O(1)\)

実装のポイント

  • 入力は map(int, sys.stdin.readline().split()) で整数として読み取ります。
  • 支払える条件には、等しい場合も含めて N * A <= B を使います。
  • Python の条件式を使うと、判定と出力を次のように書けます。
print("Yes" if N * A <= B else "No")
  • 出力は指定どおり、大文字・小文字を区別して Yes または No とします。

    ソースコード

def main():
    import sys
    N, A, B = map(int, sys.stdin.readline().split())
    print("Yes" if N * A <= B else "No")

main()


この解説は gpt-6-astra-medium によって生成されました。