#5165. Problem 2. Loan Repayment

0

Problem 2. Loan Repayment

Problem 2. Loan Repayment

USACO 2020 January Contest, Silver

Farmer John 欠了 Bessie NN 加仑牛奶(1N10121\le N\le 10^{12})。他必须在 KK 天内将牛奶给 Bessie。但是,他不想将牛奶太早拿出手。另一方面,他不得不在还债上有所进展,所以他必须每天给 Bessie 至少 MM 加仑牛奶(1M10121\le M\le 10^{12})。

以下是 Farmer John 决定偿还 Bessie 的方式。首先他选择一个正整数 XX。然后他每天都重复以下过程:

  1. 假设 Farmer John 已经给了 Bessie GG 加仑,计算 NGX\frac{N-G}{X} 向下取整。令这个数为 YY
  2. 如果 YY 小于 MM,令 YY 等于 MM
  3. 给 Bessie YY 加仑牛奶。

XX 的最大值,使得 Farmer John 按照上述过程能够在 KK 天后给 Bessie 至少 NN 加仑牛奶 (1K10121\le K\le 10^{12})。

测试点性质: 测试点 2-4 满足 K105K\le 10^5。测试点 5-11 没有额外限制。

输入格式(文件名:loan.in):

输入仅有一行,包含三个空格分隔的正整数 NNKKMM,满足 KM<NK\cdot M<N

输出格式(文件名:loan.out):

输出最大的正整数 XX,使得按照上述过程 Farmer John 会给 Bessie 至少 NN 加仑牛奶。

输入样例:


10 3 3

输出样例:


2

在这个测试用例中,当 X=2X=2 时 Farmer John 第一天给 Bessie 55 加仑,后两天每天给 Bessie M=3M=3 加仑。

注意这个问题涉及到的整数规模需要使用 64 位整数类型(例如,C/C++ 中的“long long”)。

供题:Nick Wu