#arc149f. [arc149_f]Rational Number System
[arc149_f]Rational Number System
问题陈述
令 为一个有理数, 和 分别为 的分子和分母。也就是说, 和 是满足 且 的正整数。
将正整数 的 基数为 的展开 定义为满足以下所有条件的整数序列 。
- 是介于 和 之间的整数。
- 。
- 。
可以证明任何正整数 都有唯一的基数为 的展开。
给定正整数 、、、 和 。其中, 和 满足 。
考虑按照它们的基数为 的展开以字典顺序升序排列所有不大于 的正整数。找出这个列表中的第 个、第 个、、第 个正整数。
按照惯例,输入和输出正整数采用十进制表示。
什么是序列的字典顺序?
一个序列 满足以下条件时,被称为字典上更小于序列 。这里, 和 分别表示 和 的长度。
- 且 。
- 存在整数 使得以下两个条件都满足。
- 。
- 。
约束条件
输入
输入数据从标准输入读入,格式如下:
输出
输出 行。第 行应该包含所有正整数列表中第 个正整数,按照它们的基数为 的展开以字典顺序升序排列。
使用十进制表示打印正整数。
示例输入 1
3 1 9 1 9
示例输出 1
1
3
9
4
5
2
6
7
8
正整数不大于 的基数为 的展开如下所示。
1: (1), 2: (2), 3: (1, 0),
4: (1, 1), 5: (1, 2), 6: (2, 0),
7: (2, 1), 8: (2, 2), 9: (1, 0, 0).
示例输入 2
3 2 9 1 9
示例输出 2
1
2
3
4
6
9
7
8
5
正整数不大于 的基数为 的展开如下所示。
1: (1), 2: (2), 3: (2, 0),
4: (2, 1), 5: (2, 2), 6: (2, 1, 0),
7: (2, 1, 1), 8: (2, 1, 2), 9: (2, 1, 0, 0).
例如,可以从 $2\cdot \left(\frac32\right)^2 + 1\cdot \frac32 + 0\cdot 1 = 6$ 看出正整数 的基数为 的展开是 。
示例输入 3
3 2 9 3 8
示例输出 3
3
4
6
9
7
8
这是示例输入 2 的输出的第 行至第 行。
示例输入 4
10 9 1000000000000000000 123456789123456789 123456789123456799
示例输出 4
806324968563249278
806324968563249279
725692471706924344
725692471706924345
725692471706924346
725692471706924347
725692471706924348
725692471706924349
653123224536231907
653123224536231908
653123224536231909