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\) とすると、この場合に誤答するため注意しましょう。
アルゴリズム
- \(N, A, B\) を入力します。
- \(N \times A\) を計算します。
- \(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 によって生成されました。