AtCoder ABC 190 B – Magic 3 Python解説
Magic 3
魔法使いの高橋君は魔物と戦っています。
AtCoder Beginner Contest 「Magic 3」
高橋君は N 種類の呪文を使うことができます。 i 番目の呪文は詠唱に Xi 秒かかり、威力は Yi です。
ただし、この魔物は強いので、詠唱に S 秒以上かかる呪文や、威力が D 以下の呪文ではダメージを与えられません。 また、呪文以外の方法でダメージを与えることもできません。
高橋君は魔物にダメージを与えられるでしょうか?
呪文の詠唱時間と威力が条件を満たすかどうか判定していきます。
n, s, d = map(int, input().split())
for _ in range(n):
x, y = map(int, input().split())
if x < s and y > d:
print("Yes")
break
else:
print("No")
n, s, d = map(int, input().split())
for _ in range(n):
x, y = map(int, input().split())
if x >= s:
continue
if y <= d:
continue
print("Yes")
break
else:
print("No")
n, s, d = map(int, input().split())
def damage():
x, y = map(int, input().split())
return x < s and y > d
if any(damage() for _ in range(n)):
print("Yes")
else:
print("No")
色々な解き方を紹介しましたが、一番最後のコードはPythonの組み込み関数のanyを使っています。これはいずれかの要素がTrueかどうかを判定してくれるので、条件文を書いた関数を作って、anyで真偽値を判定しています。