AtCoder Beginner Contest Edit

【pythonでABC190を解説】B - Magic 3

問題概要

問題ページ

問題文

魔法使いの高橋君は魔物と戦っています。
高橋君は \(N\) 種類の呪文を使うことができます。
\(i\) 番目の呪文は詠唱に \(X_i\) 秒かかり、威力は \(Y_i\) です。
ただし、この魔物は強いので、詠唱に \(S\) 秒以上かかる呪文や、威力が \(D\) 以下の呪文ではダメージを与えられません。
また、呪文以外の方法でダメージを与えることもできません。
高橋君は魔物にダメージを与えられるでしょうか?

制約

  • 入力は全て整数
  • \(1 ≤ N ≤ 100\)
  • \(1 ≤ X_i ≤ 10^9\)
  • \(1 ≤ Y_i ≤ 10^9\)
  • \(1 ≤ S ≤ 10^9\)
  • \(1 ≤ D ≤ 10^9\)

問題の考察

高橋君が使う呪文のうち、詠唱に \(S\) 秒以上かかる呪文や、威力が \(D\) 以下の呪文ではダメージが与えられません。

ダメージを与える条件

  • 詠唱時間が \(S\) 秒未満
  • 威力が\(\D)超

未満・超・以下・以上に気を付けないとif文の分岐条件を間違えてしまいます。

for文中で条件に注意しながら、高橋君が使える呪文でダメージが与えられるものがあるか判定します。

たびすけ
未満・超・以下・以上に不安がある人は確認しておきましょう!

ACコード

import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n, s, d = list(map(int, input().rstrip('\n').split()))
    for i in range(n):
        x, y = list(map(int, input().rstrip('\n').split()))
        if x < s and y > d:
            print("Yes")
            exit()
    print("No")


if __name__ == '__main__':
    solve()

-AtCoder Beginner Contest, Edit
-