このシリーズではE869120さんによって作成された競プロ典型90問をPythonで解いています。
問題
ポイント
問題文の通りに比較しようとすると、以下のようなコードを思いつくかもしれません。
import math
if math.log2(a) < b * math.log2(c):
print('Yes')
else:
print('No')
しかし、これではWAとなってしまいます。PCは2進数で計算を行うため、上記コードだと誤差が大きくなってしまうからです。
これを回避するためには対数の比較を、整数の比較に変換します。
log2a < blog2c という比較演算は a < c ** b と同義です。
コード
def main():
import sys
sys.setrecursionlimit(10 ** 9)
input = sys.stdin.readline
a, b, c = map(int, input().split(" "))
if a < c ** b:
print('Yes')
else:
print('No')
if __name__ == '__main__':
main()