AtCoder Beginner Contest

【pythonでABC153を解説】B - Common Raccoon vs Monster

問題概要

問題ページ

問題文

アライグマはモンスターと戦っています。

モンスターの体力は \(H\) です。

アライグマは \(N\) 種類の必殺技を使うことができ、\(i\) 番目の必殺技を使うとモンスターの体力を \(A_i\) 減らすことができます。
必殺技を使う以外の方法でモンスターの体力を減らすことはできません。

モンスターの体力を \(0\) 以下にすればアライグマの勝ちです。

アライグマが同じ必殺技を \(2\) 度以上使うことなくモンスターに勝つことができるなら Yes を、できないなら No を出力してください。

制約

  • \(1 \leq H \leq 10^9\)
  • \(1 \leq N \leq 10^5\)
  • \(1 \leq A_i \leq 10^4\)
  • 入力中のすべての値は整数である。

問題の考察

モンスターの体力を減らすには必殺技を使うしかないが、必殺技の回数が制限されているのでその制限内でモンスターを倒せるかという問題。

各\( A_i\)の合計値がモンスターの体力 \(H\)以上であればモンスターを倒すことができる。

問題もコーディングも難しいくはない。

たびすけ
sumifを使って条件を満たしているか正確にコーディングしよう。

ACコード

import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    h, n = list(map(int, input().rstrip('\n').split()))
    a = list(map(int, input().rstrip('\n').split()))
    print("Yes" if sum(a) >= h else "No")


if __name__ == '__main__':
    solve()

プログラミング

-AtCoder Beginner Contest
-