#P3011. 分成 k 份的最大乘积

分成 k 份的最大乘积

题目描述

给定两个正整数 nnkk,你需要将 nn 恰好分成 kk 份正整数(这 kk 份之和等于 nn),使得这 kk 份的乘积尽可能大。

请求出这个最大乘积对 109+710^9 + 7 取模后的结果。

输入格式

一行,两个正整数 n,kn, k,用空格分隔。

输出格式

一行一个整数,表示最大乘积对 109+710^9 + 7 取模后的结果。

输入输出样例 #1

输入 #1

10 2

输出 #1

25

输入输出样例 #2

输入 #2

20 4

输出 #2


625

输入输出样例 #3

输入 #3

10 3

输出 #3

36

说明/提示

【样例说明】

  • 样例 1:将 1010 分成 5+55 + 5,乘积为 5×5=255 \times 5 = 25,这是最大的。
  • 样例 2:将 2020 分成 5+5+5+55 + 5 + 5 + 5,乘积为 54=6255^4 = 625,这是最大的。
  • 样例 3:将 1010 分成 4+3+34 + 3 + 3,乘积为 4×3×3=364 \times 3 \times 3 = 36,这是最大的。

【数据范围】

测试点 nn \le kk \le 分值
131 \sim 3 2020 3030
464 \sim 6 10610^6
7107 \sim 10 101210^{12} 4040

对于 100%100\% 的数据,1kn10121 \le k \le n \le 10^{12}

【提示】

nn 尽量平均地分成 kk 份时,乘积最大。