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 Ruby (2.7.1) (judge verdict: Accepted)

def input_n
  gets.to_i               # 単一整数
end

def input_s
  gets.chomp              # 文字列。chompを付けないと改行文字がついてくる
end

def input_a
  gets.split.map(&:to_i)  # スペースで区切られた複数の整数
end

def input_o(num)
  num.times.map { gets.to_i }  # 縦に並んだ複数の整数。たまにある
end

def output_f(num)
  puts sprintf("%.12f", num)
end

a, b, n = input_a

# 問題文を式に直すと
# (a * x / b).floor - a * (x / b).floor
# となっていて、第二項「a * (x / b).floor」がマイナスであるため、この項の値が少なければ少ないほど嬉しい
# また、第一項「(a * x / b).floor」については、xが大きくなるほど大きくなる(a, bは入力によって固定されている)単調増加であることがわかる(floorに惑わされがちだが無視すればなんてことのない「a * x / b」なので)
# よって、以上の点から第二項を0にして、かつ第一項が最大の値をとるxは x = b - 1 となる。ただし、x <= n という条件があるため、b - 1 が n より大きい場合は x = n である。
x = [n, b - 1].min
# ruby では整数同士の計算であればfloorは要らない
puts (a * x / b)