Buggy python submission (verdict: Runtime Error):
# -*- coding: utf-8 -*-
# モジュールのインポート
import math
import numpy as np

# 標準入力の取得
A, B, N = list(map(int, input().split()))


def func(x: np.ndarray) -> np.ndarray:
    return np.floor(A*x/B) - A*np.floor(x/B)


# 求解処理
MAX_VALUE = pow(10, 7)
result = 0
for i in range((N//MAX_VALUE)+1):
    x = np.array([])
    if i == 0:
        x = np.arange(min(N, B-1), min(N, MAX_VALUE)+1, B)
    else:
        x = np.arange(MAX_VALUE*i, min(N, MAX_VALUE*(i+1))+1, B)
    x = func(x)
    result = max(result, int(np.max(x)))

# 結果出力
print(result)


Fixed submission:
# -*- coding: utf-8 -*-
# モジュールのインポート
import math

# 標準入力の取得
A, B, N = list(map(int, input().split()))


def f(x: int) -> int:
    return math.floor(A*x/B) - A*math.floor(x/B)


# 求解処理
result = f(min(B-1, N))

# 結果出力
print(result)

Buggy python submission (verdict: Runtime Error):
# -*- coding: utf-8 -*-
# モジュールのインポート
import math
import numpy as np

# 標準入力の取得
A, B, N = list(map(int, input().split()))


def func(x: np.ndarray) -> np.ndarray:
    return np.floor(A*x/B) - A*np.floor(x/B)


# 求解処理
MAX_VALUE = pow(10, 5)
result = 0
for i in range((N//MAX_VALUE)+1):
    x = np.array([])
    if i == 0:
        x = np.arange(min(N, B-1), min(N, MAX_VALUE)+1, B)
    else:
        x = np.arange(MAX_VALUE*i, min(N, MAX_VALUE*(i+1))+1, B)
    x = func(x)
    result = max(result, int(np.max(x)))

# 結果出力
print(result)


Fixed submission:
# -*- coding: utf-8 -*-
# モジュールのインポート
import math

# 標準入力の取得
A, B, N = list(map(int, input().split()))


def f(x: int) -> int:
    return math.floor(A*x/B) - A*math.floor(x/B)


# 求解処理
result = f(min(B-1, N))

# 結果出力
print(result)

Buggy python submission (verdict: Runtime Error):
# -*- coding: utf-8 -*-
# モジュールのインポート
import math
import numpy as np

# 標準入力の取得
A, B, N = list(map(int, input().split()))


def func(x: np.ndarray) -> np.ndarray:
    return np.floor(A*x/B) - A*np.floor(x/B)


# 求解処理
MAX_VALUE = pow(10, 5)
result = 0
for i in range((N//MAX_VALUE)+1):
    x = np.array([])
    if i == 0:
        x = np.arange(min(N, B-1), min(N, MAX_VALUE)+1, B)
    else:
        x = np.arange(MAX_VALUE*i, min(N, MAX_VALUE)+1, B)
    x = func(x)
    result = max(result, int(np.max(x)))

# 結果出力
print(result)


Fixed submission:
# -*- coding: utf-8 -*-
# モジュールのインポート
import math

# 標準入力の取得
A, B, N = list(map(int, input().split()))


def f(x: int) -> int:
    return math.floor(A*x/B) - A*math.floor(x/B)


# 求解処理
result = f(min(B-1, N))

# 結果出力
print(result)

Buggy python submission (verdict: Runtime Error):
# -*- coding: utf-8 -*-
# モジュールのインポート
import math
import numpy as np

# 標準入力の取得
A, B, N = list(map(int, input().split()))

# 求解処理


def func(x: np.ndarray) -> np.ndarray:
    return np.floor(A*x/B) - A*np.floor(x/B)


result = 0
x = np.arange(min(N, B-1), (N//2)+1, B)
x = func(x)
result = max(result, int(np.max(x)))
x = np.arange((N//2), N+1, B)
x = func(x)
result = max(result, int(np.max(x)))


# 結果出力
print(result)


Fixed submission:
# -*- coding: utf-8 -*-
# モジュールのインポート
import math

# 標準入力の取得
A, B, N = list(map(int, input().split()))


def f(x: int) -> int:
    return math.floor(A*x/B) - A*math.floor(x/B)


# 求解処理
result = f(min(B-1, N))

# 結果出力
print(result)

Buggy python submission (verdict: Runtime Error):
# -*- coding: utf-8 -*-
# モジュールのインポート
import math
import numpy as np

# 標準入力の取得
A, B, N = list(map(int, input().split()))

# 求解処理


def func(x: np.ndarray) -> np.ndarray:
    return np.floor(A*x/B) - A*np.floor(x/B)


result = 0
x = np.arange(min(N, B-1), (N//2)+1, B)
x = func(x)
result = max(result, int(np.max(x)))
x = np.arange((N//2), N+1, B)
x = func(x)
result = max(result, int(np.max(x)))


# 結果出力
print(int(np.max(x)))


Fixed submission:
# -*- coding: utf-8 -*-
# モジュールのインポート
import math

# 標準入力の取得
A, B, N = list(map(int, input().split()))


def f(x: int) -> int:
    return math.floor(A*x/B) - A*math.floor(x/B)


# 求解処理
result = f(min(B-1, N))

# 結果出力
print(result)

Buggy python submission (verdict: Runtime Error):
# -*- coding: utf-8 -*-
# モジュールのインポート
import math
import numpy as np

# 標準入力の取得
A, B, N = list(map(int, input().split()))


def func(x: np.ndarray) -> np.ndarray:
    return np.floor(A*x/B) - A*np.floor(x/B)


# 求解処理
x = np.arange(min(N, B-1), N+1, B, dtype="float32")
x = func(x)

# 結果出力
print(int(np.max(x)))


Fixed submission:
# -*- coding: utf-8 -*-
# モジュールのインポート
import math

# 標準入力の取得
A, B, N = list(map(int, input().split()))


def f(x: int) -> int:
    return math.floor(A*x/B) - A*math.floor(x/B)


# 求解処理
result = f(min(B-1, N))

# 結果出力
print(result)

Buggy python submission (verdict: Runtime Error):
# -*- coding: utf-8 -*-
# モジュールのインポート
import math
import numpy as np

# 標準入力の取得
A, B, N = list(map(int, input().split()))


def func(x: np.ndarray) -> np.ndarray:
    return np.floor(A*x/B) - A*np.floor(x/B)


# 求解処理
x = np.arange(min(N, B-1), N+1, B)
x = func(x)

# 結果出力
print(int(np.max(x)))


Fixed submission:
# -*- coding: utf-8 -*-
# モジュールのインポート
import math

# 標準入力の取得
A, B, N = list(map(int, input().split()))


def f(x: int) -> int:
    return math.floor(A*x/B) - A*math.floor(x/B)


# 求解処理
result = f(min(B-1, N))

# 結果出力
print(result)

Buggy python submission (verdict: Time Limit Exceeded):
# -*- coding: utf-8 -*-
# モジュールのインポート
import math

# 標準入力の取得
A, B, N = list(map(int, input().split()))


def func(x: int) -> int:
    """目的関数

    Arguments:
        x {int} -- N以下の非負整数

    Returns:
        int -- 目的関数値
    """
    x_B = x / B
    return math.floor(A*x_B) - A*math.floor(x_B)


# 求解処理
result = 0
for x in range(min(N, B-1), N+1, B):
    result = max(result, func(x))

# 結果出力
print(result)


Fixed submission:
# -*- coding: utf-8 -*-
# モジュールのインポート
import math

# 標準入力の取得
A, B, N = list(map(int, input().split()))


def f(x: int) -> int:
    return math.floor(A*x/B) - A*math.floor(x/B)


# 求解処理
result = f(min(B-1, N))

# 結果出力
print(result)

Buggy python submission (verdict: Time Limit Exceeded):
# -*- coding: utf-8 -*-
# モジュールのインポート
import math

# 標準入力の取得
A, B, N = list(map(int, input().split()))


# 関数の定義
def func(x: int) -> int:
    return math.floor(A*x/B) - A*math.floor(x/B)


# 求解処理
result = 0
for x in range(min(N, B-1), N+1, B):
    result = max(result, func(x))

# 結果出力
print(result)


Fixed submission:
# -*- coding: utf-8 -*-
# モジュールのインポート
import math

# 標準入力の取得
A, B, N = list(map(int, input().split()))


def f(x: int) -> int:
    return math.floor(A*x/B) - A*math.floor(x/B)


# 求解処理
result = f(min(B-1, N))

# 結果出力
print(result)