白駿#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