Problem:

Problem B: Milk

Problem

  ちょうど$a$本の牛乳の空き瓶を持っていくと新たに$b$本の牛乳の入った瓶と交換できる。

  最初に$x$本の牛乳の入った瓶を持っている川林さんは、最大何本分の牛乳を飲めるだろうか。$1000000007$で割った余りを出力せよ。

Input

入力は以下の形式で与えられる。

$a$ $b$ $x$

  3つの整数$a$, $b$, $x$が空白区切りで与えられる。

Constraints

入力は以下の条件を満たす。

  
$1 \leq a \leq 10^{15} $

  
$0 \leq b \lt a $

  
$0 \leq x \leq 10^{15}  $

Output

  答えを1行に出力せよ。

Sample Input 1

3 1 5

Sample Output 1

7

Sample Input 2

3 2 5

Sample Output 2

11

Sample Input 3

82 69 64

Sample Output 3

64

Sample Input 4

316250877917604 316250877917599 681260158257385

Sample Output 4

62687552



Sample input:
3 1 5


Sample output:
7

Submission status: Accepted

Solution code:


a,b,x = [int(i) for i in input().split()]

d = a - b
n = max(0,(x - b)) // d
ans = x + n * b
print(ans % 1000000007)

Submission status: Accepted

Solution code:
a, b, x = [int(k) for k in input().split()]

if x >= a:
    d = ((x-b) // (a-b))* b + x
else:
    d = x

print(d%1000000007)

Submission status: Accepted

Solution code:
#!/usr/bin/env python3
a, b, x = map(int, input().split())
print((x + max(x - b, 0) // (a - b) * b) % 1000000007)

Submission status: Accepted

Solution code:
a, b, x = map(int, input().split())
print((x+max(0, x-b)//(a-b)*b)%1000000007)

Submission status: Accepted

Solution code:
def inpl(): return list(map(int, input().split()))
MOD = 10**9 + 7

a, b, x = inpl()
if x < a:
    print(x%MOD)
else:
    e = (x-b)//(a-b)
    print((x + e*b)%MOD)

Submission status: Accepted

Solution code:
A, B, X = map(int, raw_input().split())

def check(n):
    if n == 0:
        return True
    v = X - n * A + n * B
    return v - B >= 0

hi = 10**16
lo = 0

while hi - lo > 1:
    mid = (hi + lo) / 2
    if check(mid):
        lo = mid
    else:
        hi = mid

print (X + lo * B) % (10 ** 9 + 7)

Submission status: Accepted

Solution code:
#! /usr/bin/env python3

a, b, x = map(int, input().split())
MOD = int(1e9+7)

if x < a:
    res = x % MOD
else:
    k = (x-b) // (a-b)
    res = (x + b*k)
    res %= MOD
print(res)