#P12968. [CCO 2025] Balanced Integer

[CCO 2025] Balanced Integer

Description

由于 CCO 经常使用整数,Alice 需要学习关于整数的知识!一个正整数 nn 可以用基数为 bb 的数字序列 dm1dm2d1d0d_{m-1}d_{m-2} \ldots d_{1}d_{0} 表示,当且仅当满足以下条件:

  • 每个数字 did_{i} 都在 00b1b-1 之间(包含边界)。
  • dm1>0d_{m-1} > 0
  • $n = d_{m-1} \times b^{m-1} + d_{m-2} \times b^{m-2} + \cdots + d_{1} \times b^{1} + d_{0} \times b^{0}$。

例如,整数 20252025 在基数为 1919 时可以表示为序列 (5,11,11)(5,11,11),因为 $2025 = 5 \times 19^{2} + 11 \times 19^{1} + 11 \times 19^{0}$。

如果一个整数 nn 在基数为 bb 时,其各位数字的平均值等于 b12\frac{b-1}{2},则称 nnbb-平衡 的。例如,2025202519-平衡 的,因为 5+11+113=9=1912\frac{5 + 11 + 11}{3} = 9 = \frac{19 - 1}{2}

Alice 可以轻松找到 19-平衡 的整数,但她难以找到同时在多个基数下平衡的整数。给定 BBNN,请帮助 Alice 找到最小的整数 xx,满足以下条件:

  • xx所有 2bB2 \leq b \leq B 的基数下都是 bb-平衡的。
  • xNx \geq N

Input Format

第一行输入包含两个以空格分隔的整数 BBNNN1N \geq 1)。

保证答案不超过 101810^{18}

Output Format

输出题目描述中所要求的最小整数 xx

4 100
141
7 10000000000
16926961207710

Hint

样例 1 解释

141141 在基数为 22 时表示为 1000110110001101,各位数字的平均值为:

$$\frac{1 + 0 + 0 + 0 + 1 + 1 + 0 + 1}{8} = 0.5 = \frac{2 - 1}{2}.$$

因此,1411412-平衡 的。

141141 在基数为 33 时表示为 1202012020,各位数字的平均值为:

$$\frac{1 + 2 + 0 + 2 + 0}{5} = 1 = \frac{3 - 1}{2}.$$

因此,1411413-平衡 的。

141141 在基数为 44 时表示为 20312031,各位数字的平均值为:

2+0+3+14=1.5=412.\frac{2 + 0 + 3 + 1}{4} = 1.5 = \frac{4 - 1}{2}.

因此,1411414-平衡 的。

最后,141100141 \geq 100

你可以在解题时使用以下代码片段:

// 注意:如果 x 为 0,结果未定义。
int base_2_length(unsigned long long x) {
  return 64 - __builtin_clzll(x);
}

int base_2_sum(unsigned long long x) {
  return __builtin_popcountll(x);
}
分值 BB 的范围 NN 的范围
2 分 2B72 \leq B \leq 7 1N1041 \leq N \leq 10^4
6 分 2B62 \leq B \leq 6 N=1010N = 10^{10}
2 分 2B72 \leq B \leq 7 无限制
9 分 8B118 \leq B \leq 11 N=1N = 1
4 分 B=8B = 8 无限制
2 分 9B119 \leq B \leq 11