白駿#1712
数学の方法
総収入が総費用に等しい場合の式を求めることで問題を解決します.
a, b, c = map(int, input().split())
if b >= c: # 가변비용 b가 판매가격 c보다 클 경우, 손익분기점이 존재하지 않는다
print(-1)
else:
# a + b * n = c * n -> b * n - c * n = -a -> n (b - c) = -a
# Therefore, n = a / (c - b)
n = a // (c - b)
n += 1 # n이 현재 같을 때의 값이기 때문에, 1을 더해주어야 한다.
print(n)
while loop(タイムアウト)
最初は重複文を簡単に使用するアルゴリズムを考えていましたが、3番目の例では、重複文が21億回迂回し、タイムアウトを招きます.
a, b, c = map(int, input().split())
n = 1
while True:
if b >= c:
print(-1)
break
else:
cost = a + b * n
profit = c * n
if profit > cost:
print(n)
break
n += 1
Reference
この問題について(白駿#1712), 我々は、より多くの情報をここで見つけました https://velog.io/@ryeongse25/백준-1712テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol