回答
Submission #450906 - AtCoder Beginner Contest 026 | AtCoder
なんとなく解法は浮かんでいたんですけどねえ…
初めて二分法を活用できたような気がします,誤差が怖くてループ回しすぎている疑惑がありますが….
f(t)=A×t+B×sin(C×t×π) を計算するのですが,そのtを二分法で求めていくだけです.
ABCのD問題としてもかなり簡単な気がします… Beginnerっていうのに嘘はなかった!
import math a, b, c = map(int, input().split()) ft, low, high = 100, 0, 500 calc = lambda m: a * m + b * math.sin(c * m * math.pi) for i in range(100): mid = (low + high) / 2 if calc(mid) < ft: low = mid else: high = mid print(low)