Problem:
Score : 400 points

Problem Statement

Given are integers A, B, and N.

Find the maximum possible value of floor(Ax/B) - A × floor(x/B) for a non-negative integer x not greater than N.

Here floor(t) denotes the greatest integer not greater than the real number t.

Constraints

1 ≤ A ≤ 10^{6}

1 ≤ B ≤ 10^{12}

1 ≤ N ≤ 10^{12}

All values in input are integers.

Input

Input is given from Standard Input in the following format:

A B N

Output

Print the maximum possible value of floor(Ax/B) - A × floor(x/B) for a non-negative integer x not greater than N, as an integer.

Sample Input 1

5 7 4

Sample Output 1

2

When x=3, floor(Ax/B)-A×floor(x/B) = floor(15/7) - 5×floor(3/7) = 2. This is the maximum value possible.

Sample Input 2

11 10 9

Sample Output 2

9

Solution in Python (3.8.2) (judge verdict: Wrong Answer)


from sys import stdin
input = stdin.readline

a,b,n = map(int,input().split())
maxpoint = 0

if b > n  :
    tmp = int((a * n) / b)  - a * int(n/b) 
    maxpoint = max(tmp,maxpoint)
elif b == n:
    maxpoint = 0
else:
    tmp = int((a * n) / b)  - a * int(n/b) 
    k = int(n/b)*b -1
    t1 =  int((a * k) / b)  - a * int(k/b) 
    # print(tmp,t1,k)
    maxpoint = max(t1,tmp)
    for i in reversed(range(n+1)):
        t1 =  int((a * i) / b)  - a * int(i/b) 
        if b > 1:
            if i == k :
                print(maxpoint) 
                exit()
        elif b == 1:
            print(0)
            exit()
        if t1 > maxpoint:
            print(t1)
            maxpoint = t1
       

print(maxpoint)